/**********************************************************
 * ctc_api.h
 * Date:
 * Author: auto generate from include file
 **********************************************************/
#ifndef _CTC_API_H
#define _CTC_API_H
#ifdef __cplusplus
extern "C" {
#endif
/**********************************************************
 * 
 * Header file
 * 
 **********************************************************/
#include "common/../../sal/include/sal_types.h"
#include "common/../../dal/include/dal.h"
#include "common/include/ctc_error.h"
#include "common/include/ctc_const.h"
#include "common/include/ctc_acl.h"
#include "common/include/ctc_aps.h"
#include "common/include/ctc_bpe.h"
#include "common/include/ctc_chip.h"
#include "common/include/ctc_common.h"
#include "common/include/ctc_diag.h"
#include "common/include/ctc_dma.h"
#include "common/include/ctc_dot1ae.h"
#include "common/include/ctc_dtel.h"
#include "common/include/ctc_efd.h"
#include "common/include/ctc_fcoe.h"
#include "common/include/ctc_flexe.h"
#include "common/include/ctc_ftm.h"
#include "common/include/ctc_internal_port.h"
#include "common/include/ctc_interrupt.h"
#include "common/include/ctc_ipfix.h"
#include "common/include/ctc_ipmc.h"
#include "common/include/ctc_ipuc.h"
#include "common/include/ctc_l2.h"
#include "common/include/ctc_l3if.h"
#include "common/include/ctc_learning_aging.h"
#include "common/include/ctc_linkagg.h"
#include "common/include/ctc_mirror.h"
#include "common/include/ctc_monitor.h"
#include "common/include/ctc_mpls.h"
#include "common/include/ctc_nexthop.h"
#include "common/include/ctc_npm.h"
#include "common/include/ctc_oam.h"
#include "common/include/ctc_overlay_tunnel.h"
#include "common/include/ctc_packet.h"
#include "common/include/ctc_parser.h"
#include "common/include/ctc_pdu.h"
#include "common/include/ctc_pon.h"
#include "common/include/ctc_port.h"
#include "common/include/ctc_ptp.h"
#include "common/include/ctc_qos.h"
#include "common/include/ctc_register.h"
#include "common/include/ctc_scl.h"
#include "common/include/ctc_sc_oam.h"
#include "common/include/ctc_security.h"
#include "common/include/ctc_srv6.h"
#include "common/include/ctc_stacking.h"
#include "common/include/ctc_stats.h"
#include "common/include/ctc_sync_ether.h"
#include "common/include/ctc_trill.h"
#include "common/include/ctc_vlan.h"
#include "common/include/ctc_wlan.h"
#include "common/include/ctc_xdata.h"
#include "common/include/ctc_eunit.h"
#include "app/ctc_app_vlan_port_api.h"
#include "app/ctc_app_index.h"
#include "init/ctc_init.h"
/**********************************************************
 * 
 * Defines and macros
 * 
 **********************************************************/
struct ctc_api_s
{
    /*##acl##*/
    int32(*ctc_acl_add_action_field_list)(uint32, ctc_acl_field_action_t*, uint32*);
    int32(*ctc_acl_add_action_field)(uint32, ctc_acl_field_action_t*);
    int32(*ctc_acl_add_cid_pair)(ctc_acl_cid_pair_t*);
    int32(*ctc_acl_add_entry)(uint32, ctc_acl_entry_t*);
    int32(*ctc_acl_add_key_field_list)(uint32, ctc_field_key_t*, uint32*);
    int32(*ctc_acl_add_key_field)(uint32, ctc_field_key_t*);
    int32(*ctc_acl_add_presel_fields)(uint16, uint8, ctc_field_key_t*);
    int32(*ctc_acl_add_range_info)(ctc_acl_range_t*, uint8);
    int32(*ctc_acl_add_udf_entry_key_field)(uint32, ctc_field_key_t*);
    int32(*ctc_acl_add_udf_entry)(ctc_acl_classify_udf_t*);
    int32(*ctc_acl_copy_entry)(ctc_acl_copy_entry_t*);
    int32(*ctc_acl_create_group)(uint32, ctc_acl_group_info_t*);
    int32(*ctc_acl_create_presel)(ctc_acl_presel_t*);
    int32(*ctc_acl_deinit)(void);
    int32(*ctc_acl_destroy_group)(uint32);
    int32(*ctc_acl_destroy_presel)(uint16);
    int32(*ctc_acl_get_aset_fields)(ctc_acl_aset_t*);
    int32(*ctc_acl_get_flex_key_fields)(ctc_acl_flex_key_t*);
    int32(*ctc_acl_get_group_info)(uint32, ctc_acl_group_info_t*);
    int32(*ctc_acl_get_league_mode)(ctc_acl_league_t*);
    int32(*ctc_acl_get_multi_entry)(ctc_acl_query_t*);
    int32(*ctc_acl_get_udf_entry)(ctc_acl_classify_udf_t*);
    int32(*ctc_acl_init)(ctc_acl_global_cfg_t*);
    int32(*ctc_acl_install_entry)(uint32);
    int32(*ctc_acl_install_group)(uint32, ctc_acl_group_info_t*);
    int32(*ctc_acl_remove_action_field_list)(uint32, ctc_acl_field_action_t*, uint32*);
    int32(*ctc_acl_remove_action_field)(uint32, ctc_acl_field_action_t*);
    int32(*ctc_acl_remove_all_entry)(uint32);
    int32(*ctc_acl_remove_cid_pair)(ctc_acl_cid_pair_t*);
    int32(*ctc_acl_remove_entry)(uint32);
    int32(*ctc_acl_remove_key_field_list)(uint32, ctc_field_key_t*, uint32*);
    int32(*ctc_acl_remove_key_field)(uint32, ctc_field_key_t*);
    int32(*ctc_acl_remove_presel_fields)(uint16, uint8, ctc_field_key_t*);
    int32(*ctc_acl_remove_range_info)(uint8);
    int32(*ctc_acl_remove_udf_entry_key_field)(uint32, ctc_field_key_t*);
    int32(*ctc_acl_remove_udf_entry)(ctc_acl_classify_udf_t*);
    int32(*ctc_acl_reorder_entry)(ctc_acl_reorder_t*);
    int32(*ctc_acl_reorder_stats)(ctc_acl_reorder_t*, uint32*, uint32*);
    int32(*ctc_acl_replace_block)(ctc_acl_replace_t*);
    int32(*ctc_acl_set_aset_fields)(ctc_acl_aset_t*);
    int32(*ctc_acl_set_entry_priority)(uint32, uint32);
    int32(*ctc_acl_set_field_to_hash_field_sel)(uint8, uint8, ctc_field_key_t*);
    int32(*ctc_acl_set_flex_key_fields)(ctc_acl_flex_key_t*);
    int32(*ctc_acl_set_hash_field_sel)(ctc_acl_hash_field_sel_t*);
    int32(*ctc_acl_set_league_mode)(ctc_acl_league_t*);
    int32(*ctc_acl_uninstall_entry)(uint32);
    int32(*ctc_acl_uninstall_group)(uint32);
    int32(*ctc_acl_update_action)(uint32, ctc_acl_action_t*);
    /*##aps##*/
    int32(*ctc_aps_create_aps_bridge_group)(uint16, ctc_aps_bridge_group_t*);
    int32(*ctc_aps_create_raps_mcast_group)(uint16);
    int32(*ctc_aps_deinit)(void);
    int32(*ctc_aps_destroy_aps_bridge_group)(uint16);
    int32(*ctc_aps_destroy_raps_mcast_group)(uint16);
    int32(*ctc_aps_get_aps_bridge_protection_path)(uint16, uint32*);
    int32(*ctc_aps_get_aps_bridge)(uint16, bool*);
    int32(*ctc_aps_get_aps_bridge_working_path)(uint16, uint32*);
    int32(*ctc_aps_get_aps_select)(uint16, bool*);
    int32(*ctc_aps_init)(void*);
    int32(*ctc_aps_set_aps_bridge_group)(uint16, ctc_aps_bridge_group_t*);
    int32(*ctc_aps_set_aps_bridge_protection_path)(uint16, uint32);
    int32(*ctc_aps_set_aps_bridges)(ctc_aps_grp_bitmap_t*);
    int32(*ctc_aps_set_aps_bridge)(uint16, bool);
    int32(*ctc_aps_set_aps_bridge_working_path)(uint16, uint32);
    int32(*ctc_aps_set_aps_selects)(ctc_aps_grp_bitmap_t*);
    int32(*ctc_aps_set_aps_select)(uint16, bool);
    int32(*ctc_aps_update_raps_mcast_member)(ctc_raps_member_t*);
    /*##bpe##*/
    int32(*ctc_bpe_add_8021br_forward_entry)(ctc_bpe_8021br_forward_t*);
    int32(*ctc_bpe_deinit)(void);
    int32(*ctc_bpe_get_intlk_en)(bool*);
    int32(*ctc_bpe_get_port_extender)(uint32, bool*);
    int32(*ctc_bpe_init)(void*);
    int32(*ctc_bpe_remove_8021br_forward_entry)(ctc_bpe_8021br_forward_t*);
    int32(*ctc_bpe_set_intlk_en)(bool);
    int32(*ctc_bpe_set_port_extender)(uint32, ctc_bpe_extender_t*);
    /*##chip##*/
    int32(*ctc_chip_deinit)(void);
    int32(*ctc_chip_eunit_install)(uint8, ctc_eunit_install_t*);
    int32(*ctc_chip_eunit_uninstall)(uint8);
    int32(*ctc_chip_get_access_type)(ctc_chip_access_type_t*);
    int32(*ctc_chip_get_gpio_input)(uint8, uint8*);
    int32(*ctc_chip_get_mdio_clock)(ctc_chip_mdio_type_t, uint16*);
    int32(*ctc_chip_get_phy_mapping)(ctc_chip_phy_mapping_para_t*);
    int32(*ctc_chip_get_property)(uint8, ctc_chip_property_t, void*);
    int32(*ctc_chip_i2c_read)(ctc_chip_i2c_read_t*);
    int32(*ctc_chip_i2c_write)(ctc_chip_i2c_write_t*);
    int32(*ctc_chip_init_done)(void);
    int32(*ctc_chip_init)(uint8);
    int32(*ctc_chip_mdio_read)(uint8, ctc_chip_mdio_type_t, ctc_chip_mdio_para_t*);
    int32(*ctc_chip_mdio_write)(uint8, ctc_chip_mdio_type_t, ctc_chip_mdio_para_t*);
    int32(*ctc_chip_read_gephy_reg)(uint32, ctc_chip_gephy_para_t*);
    int32(*ctc_chip_read_i2c_buf)(ctc_chip_i2c_scan_read_t*);
    int32(*ctc_chip_read_xgphy_reg)(uint32, ctc_chip_xgphy_para_t*);
    int32(*ctc_chip_set_access_type)(ctc_chip_access_type_t);
    int32(*ctc_chip_set_gephy_scan_special_reg)(ctc_chip_ge_opt_reg_t*, bool);
    int32(*ctc_chip_set_gpio_mode)(uint8, ctc_chip_gpio_mode_t);
    int32(*ctc_chip_set_gpio_output)(uint8, uint8);
    int32(*ctc_chip_set_hss12g_enable)(uint8, uint8, ctc_chip_serdes_mode_t, uint8);
    int32(*ctc_chip_set_i2c_scan_en)(bool);
    int32(*ctc_chip_set_i2c_scan_para)(ctc_chip_i2c_scan_t*);
    int32(*ctc_chip_set_mac_led_en)(bool);
    int32(*ctc_chip_set_mac_led_mapping)(ctc_chip_mac_led_mapping_t*);
    int32(*ctc_chip_set_mac_led_mode)(ctc_chip_led_para_t*, ctc_chip_mac_led_type_t);
    int32(*ctc_chip_set_mdio_clock)(ctc_chip_mdio_type_t, uint16);
    int32(*ctc_chip_set_phy_mapping)(ctc_chip_phy_mapping_para_t*);
    int32(*ctc_chip_set_phy_scan_en)(bool);
    int32(*ctc_chip_set_phy_scan_para)(ctc_chip_phy_scan_ctrl_t*);
    int32(*ctc_chip_set_property)(uint8, ctc_chip_property_t, void*);
    int32(*ctc_chip_set_serdes_mode)(uint8, ctc_chip_serdes_info_t*);
    int32(*ctc_chip_set_xgphy_scan_special_reg)(ctc_chip_xg_opt_reg_t*, uint8);
    int32(*ctc_chip_write_gephy_reg)(uint32, ctc_chip_gephy_para_t*);
    int32(*ctc_chip_write_xgphy_reg)(uint32, ctc_chip_xgphy_para_t*);
    int32(*ctc_datapath_deinit)(void);
    int32(*ctc_datapath_init)(uint8, void*);
    int32(*ctc_datapath_sim_init)(void);
    int32(*ctc_get_chip_clock)(uint16*);
    int32(*ctc_get_chip_sensor)(uint8, ctc_chip_sensor_type_t, uint32*);
    int32(*ctc_get_gchip_id)(uint8, uint8*);
    int32(*ctc_get_local_chip_num)(uint8*);
    int32(*ctc_init_pll_hss)(void);
    int32(*ctc_parse_datapath)(char*);
    int32(*ctc_set_chip_global_cfg)(ctc_chip_global_cfg_t*);
    int32(*ctc_set_gchip_id)(uint8, uint8);
    /*##common##*/
    /*##diag##*/
    int32(*ctc_diag_deinit)(void);
    int32(*ctc_diag_get_drop_info)(uint8, ctc_diag_drop_t*);
    int32(*ctc_diag_get_lb_distribution)(uint8, ctc_diag_lb_dist_t*);
    int32(*ctc_diag_get_lb_hash)(uint8, ctc_field_key_t*, uint32, ctc_diag_lb_hash_t*);
    int32(*ctc_diag_get_memory_usage)(uint8, ctc_diag_mem_usage_t*);
    int32(*ctc_diag_get_pkt_trace)(uint8, ctc_diag_pkt_trace_result_t*);
    int32(*ctc_diag_get_property)(uint8, ctc_diag_property_t, void*);
    int32(*ctc_diag_get_queue_depth)(uint8, ctc_diag_queue_depth_t*);
    int32(*ctc_diag_init)(void*);
    int32(*ctc_diag_mem_bist)(uint8, ctc_diag_bist_mem_type_t, uint8*);
    int32(*ctc_diag_set_lb_distribution)(uint8, ctc_diag_lb_dist_t*);
    int32(*ctc_diag_set_property)(uint8, ctc_diag_property_t, void*);
    int32(*ctc_diag_tbl_control)(uint8, ctc_diag_tbl_t*);
    int32(*ctc_diag_trigger_pkt_trace)(uint8, ctc_diag_pkt_trace_t*);
    /*##dma##*/
    int32(*ctc_dma_deinit)(void);
    int32(*ctc_dma_init)(ctc_dma_global_cfg_t*);
    int32(*ctc_dma_rw_table)(ctc_dma_tbl_rw_t*);
    int32(*ctc_dma_tx_pkt)(ctc_pkt_tx_t*);
    /*##dot1ae##*/
    int32(*ctc_dot1ae_add_entry)(ctc_dot1ae_entry_t*);
    int32(*ctc_dot1ae_add_sec_chan)(uint8, ctc_dot1ae_sc_t*);
    int32(*ctc_dot1ae_clear_stats)(uint8, uint32, uint8);
    int32(*ctc_dot1ae_deinit)(void);
    int32(*ctc_dot1ae_get_global_cfg)(ctc_dot1ae_glb_cfg_t*);
    int32(*ctc_dot1ae_get_hash_field_sel)(ctc_dot1ae_hash_sel_t*);
    int32(*ctc_dot1ae_get_sec_chan)(uint8, ctc_dot1ae_sc_t*);
    int32(*ctc_dot1ae_get_stats)(uint8, uint32, ctc_dot1ae_stats_t*);
    int32(*ctc_dot1ae_init)(void*);
    int32(*ctc_dot1ae_remove_entry)(uint32);
    int32(*ctc_dot1ae_remove_sec_chan)(uint8, ctc_dot1ae_sc_t*);
    int32(*ctc_dot1ae_set_global_cfg)(ctc_dot1ae_glb_cfg_t*);
    int32(*ctc_dot1ae_set_hash_field_sel)(ctc_dot1ae_hash_sel_t*);
    int32(*ctc_dot1ae_update_sec_chan)(uint8, ctc_dot1ae_sc_t*);
    /*##dtel##*/
    int32(*ctc_dtel_deinit)(void);
    int32(*ctc_dtel_get_ifa_cfg)(ctc_dtel_ifa_cfg_t*);
    int32(*ctc_dtel_get_int_cfg)(ctc_dtel_int_cfg_t*);
    int32(*ctc_dtel_get_property)(ctc_dtel_property_t, void*);
    int32(*ctc_dtel_init)(void*);
    int32(*ctc_dtel_set_ifa_cfg)(ctc_dtel_ifa_cfg_t*);
    int32(*ctc_dtel_set_int_cfg)(ctc_dtel_int_cfg_t*);
    int32(*ctc_dtel_set_property)(ctc_dtel_property_t, void*);
    /*##efd##*/
    int32(*ctc_efd_deinit)(void);
    int32(*ctc_efd_get_global_ctl)(ctc_efd_global_control_type_t, void*);
    int32(*ctc_efd_init)(void*);
    int32(*ctc_efd_register_cb)(ctc_efd_fn_t, void*);
    int32(*ctc_efd_set_global_ctl)(ctc_efd_global_control_type_t, void*);
    /*##fcoe##*/
    int32(*ctc_fcoe_add_route)(ctc_fcoe_route_t*);
    int32(*ctc_fcoe_deinit)(void);
    int32(*ctc_fcoe_init)(void*);
    int32(*ctc_fcoe_remove_route)(ctc_fcoe_route_t*);
    /*##flexe##*/
    int32(*ctc_flexe_add_client)(uint8, uint32, ctc_flexe_client_t*);
    int32(*ctc_flexe_create_group)(uint8, uint32, ctc_flexe_grp_t*);
    int32(*ctc_flexe_deinit)(void);
    int32(*ctc_flexe_destroy_group)(uint8, uint32);
    int32(*ctc_flexe_get_client_cross)(uint8, ctc_flexe_cross_t*);
    int32(*ctc_flexe_get_client_link_up)(uint8, uint32, bool*);
    int32(*ctc_flexe_get_client_property)(uint8, uint32, ctc_flexe_client_prop_t, void*);
    int32(*ctc_flexe_get_client)(uint8, uint32, ctc_flexe_client_t*);
    int32(*ctc_flexe_get_en)(uint8, uint16, uint8*);
    int32(*ctc_flexe_get_group_property)(uint8, uint32, ctc_flexe_grp_prop_t, void*);
    int32(*ctc_flexe_get_group)(uint8, uint32, ctc_flexe_grp_t*);
    int32(*ctc_flexe_get_phy_property)(uint8, uint32, ctc_flexe_phy_prop_t, void*);
    int32(*ctc_flexe_init)(void*);
    int32(*ctc_flexe_remove_client)(uint8, uint32);
    int32(*ctc_flexe_set_client_cross)(uint8, ctc_flexe_cross_t*);
    int32(*ctc_flexe_set_client_property)(uint8, uint32, ctc_flexe_client_prop_t, void*);
    int32(*ctc_flexe_set_en)(uint8, uint16, uint8);
    int32(*ctc_flexe_set_group_property)(uint8, uint32, ctc_flexe_grp_prop_t, void*);
    int32(*ctc_flexe_set_phy_property)(uint8, uint16, ctc_flexe_phy_prop_t, void*);
    /*##ftm##*/
    int32(*ctc_ftm_get_hash_poly)(ctc_ftm_hash_poly_t*);
    int32(*ctc_ftm_get_profile_specs)(uint32, uint32*);
    int32(*ctc_ftm_mem_alloc)(ctc_ftm_profile_info_t*);
    int32(*ctc_ftm_mem_change)(ctc_ftm_change_profile_t*);
    int32(*ctc_ftm_mem_free)(void);
    int32(*ctc_ftm_set_hash_poly)(ctc_ftm_hash_poly_t*);
    int32(*ctc_ftm_set_profile_specs)(uint32, uint32);
    /*##internal_port##*/
    int32(*ctc_alloc_internal_port)(ctc_internal_port_assign_para_t*);
    int32(*ctc_free_internal_port)(ctc_internal_port_assign_para_t*);
    int32(*ctc_internal_port_deinit)(void);
    int32(*ctc_internal_port_init)(void*);
    int32(*ctc_set_internal_port)(ctc_internal_port_assign_para_t*);
    /*##interrupt##*/
    int32(*ctc_interrupt_clear_status)(uint8, ctc_intr_type_t*);
    int32(*ctc_interrupt_deinit)(void);
    int32(*ctc_interrupt_get_en)(uint8, ctc_intr_type_t*, uint32*);
    int32(*ctc_interrupt_get_status)(uint8, ctc_intr_type_t*, ctc_intr_status_t*);
    int32(*ctc_interrupt_init)(void*);
    int32(*ctc_interrupt_register_event_cb)(ctc_interrupt_event_t, CTC_INTERRUPT_EVENT_FUNC);
    int32(*ctc_interrupt_set_en)(uint8, ctc_intr_type_t*, uint32);
    /*##ipfix##*/
    int32(*ctc_ipfix_add_entry)(ctc_ipfix_data_t*);
    int32(*ctc_ipfix_deinit)(void);
    int32(*ctc_ipfix_delete_entry)(ctc_ipfix_data_t*);
    int32(*ctc_ipfix_get_flex_key_fields)(ctc_ipfix_flex_key_t*);
    int32(*ctc_ipfix_get_flex_key_sets)(ctc_ipfix_flex_key_t*);
    int32(*ctc_ipfix_get_flow_cfg)(ctc_ipfix_flow_cfg_t*);
    int32(*ctc_ipfix_get_global_cfg)(ctc_ipfix_global_cfg_t*);
    int32(*ctc_ipfix_get_hash_field_sel)(ctc_ipfix_hash_field_sel_t*);
    int32(*ctc_ipfix_get_port_cfg)(uint32, ctc_ipfix_port_cfg_t*);
    int32(*ctc_ipfix_get_property)(ctc_ipfix_property_t*);
    int32(*ctc_ipfix_init)(void*);
    int32(*ctc_ipfix_register_cb)(ctc_ipfix_fn_t, void*);
    int32(*ctc_ipfix_set_flex_key_fields)(ctc_ipfix_flex_key_t*);
    int32(*ctc_ipfix_set_flow_cfg)(ctc_ipfix_flow_cfg_t*);
    int32(*ctc_ipfix_set_global_cfg)(ctc_ipfix_global_cfg_t*);
    int32(*ctc_ipfix_set_hash_field_sel)(ctc_ipfix_hash_field_sel_t*);
    int32(*ctc_ipfix_set_port_cfg)(uint32, ctc_ipfix_port_cfg_t*);
    int32(*ctc_ipfix_set_property)(ctc_ipfix_property_t*);
    int32(*ctc_ipfix_traverse_remove)(ctc_ipfix_traverse_remove_cmp, ctc_ipfix_traverse_t*);
    int32(*ctc_ipfix_traverse)(ctc_ipfix_traverse_fn, ctc_ipfix_traverse_t*);
    /*##ipmc##*/
    int32(*ctc_ipmc_add_default_entry)(uint8, ctc_ipmc_default_action_t);
    int32(*ctc_ipmc_add_group)(ctc_ipmc_group_info_t*);
    int32(*ctc_ipmc_add_member)(ctc_ipmc_group_info_t*);
    int32(*ctc_ipmc_add_rp_intf)(ctc_ipmc_rp_t*);
    int32(*ctc_ipmc_deinit)(void);
    int32(*ctc_ipmc_get_entry_hit)(ctc_ipmc_group_info_t*, uint8*);
    int32(*ctc_ipmc_get_group_info)(ctc_ipmc_group_info_t*);
    int32(*ctc_ipmc_get_mcast_force_route)(ctc_ipmc_force_route_t*);
    int32(*ctc_ipmc_init)(void*);
    int32(*ctc_ipmc_remove_group)(ctc_ipmc_group_info_t*);
    int32(*ctc_ipmc_remove_member)(ctc_ipmc_group_info_t*);
    int32(*ctc_ipmc_remove_rp_intf)(ctc_ipmc_rp_t*);
    int32(*ctc_ipmc_set_entry_hit)(ctc_ipmc_group_info_t*, uint8);
    int32(*ctc_ipmc_set_mcast_force_route)(ctc_ipmc_force_route_t*);
    int32(*ctc_ipmc_traverse)(uint8, ctc_ipmc_traverse_fn, void*);
    int32(*ctc_ipmc_update_rpf)(ctc_ipmc_group_info_t*);
    /*##ipuc##*/
    int32(*ctc_ipuc_add_default_entry)(uint8, uint32);
    int32(*ctc_ipuc_add_nat_sa)(ctc_ipuc_nat_sa_param_t*);
    int32(*ctc_ipuc_add_tunnel)(ctc_ipuc_tunnel_param_t*);
    int32(*ctc_ipuc_add)(ctc_ipuc_param_t*);
    int32(*ctc_ipuc_arrange_fragment)(void*);
    int32(*ctc_ipuc_deinit)(void);
    int32(*ctc_ipuc_get_entry_hit)(ctc_ipuc_param_t*, uint8*);
    int32(*ctc_ipuc_get_natsa_entry_hit)(ctc_ipuc_nat_sa_param_t*, uint8*);
    int32(*ctc_ipuc_get)(ctc_ipuc_param_t*);
    int32(*ctc_ipuc_init)(void*);
    int32(*ctc_ipuc_remove_nat_sa)(ctc_ipuc_nat_sa_param_t*);
    int32(*ctc_ipuc_remove_tunnel)(ctc_ipuc_tunnel_param_t*);
    int32(*ctc_ipuc_remove)(ctc_ipuc_param_t*);
    int32(*ctc_ipuc_set_entry_hit)(ctc_ipuc_param_t*, uint8);
    int32(*ctc_ipuc_set_global_property)(ctc_ipuc_global_property_t*);
    int32(*ctc_ipuc_set_natsa_entry_hit)(ctc_ipuc_nat_sa_param_t*, uint8);
    int32(*ctc_ipuc_traverse)(uint8, void*, void*);
    /*##l2##*/
    int32(*ctc_l2_add_default_entry)(ctc_l2dflt_addr_t*);
    int32(*ctc_l2_add_fdb)(ctc_l2_addr_t*);
    int32(*ctc_l2_add_fdb_with_nexthop)(ctc_l2_addr_t*, uint32);
    int32(*ctc_l2_add_port_to_default_entry)(ctc_l2dflt_addr_t*);
    int32(*ctc_l2_fdb_deinit)(void);
    int32(*ctc_l2_fdb_get_entry_hit)(ctc_l2_addr_t*, uint8*);
    int32(*ctc_l2_fdb_init)(void*);
    int32(*ctc_l2_fdb_set_entry_hit)(ctc_l2_addr_t*, uint8);
    int32(*ctc_l2_flush_fdb)(ctc_l2_flush_fdb_t*);
    int32(*ctc_l2_get_default_entry_features)(ctc_l2dflt_addr_t*);
    int32(*ctc_l2_get_fdb_by_index)(uint32, ctc_l2_addr_t*);
    int32(*ctc_l2_get_fdb_count)(ctc_l2_fdb_query_t*);
    int32(*ctc_l2_get_fdb_entry)(ctc_l2_fdb_query_t*, ctc_l2_fdb_query_rst_t*);
    int32(*ctc_l2_get_fid_property)(uint16, ctc_l2_fid_property_t, uint32*);
    int32(*ctc_l2_get_nhid_by_logic_port)(uint16, uint32*);
    int32(*ctc_l2mcast_add_addr)(ctc_l2_mcast_addr_t*);
    int32(*ctc_l2mcast_add_member)(ctc_l2_mcast_addr_t*);
    int32(*ctc_l2mcast_remove_addr)(ctc_l2_mcast_addr_t*);
    int32(*ctc_l2mcast_remove_member)(ctc_l2_mcast_addr_t*);
    int32(*ctc_l2_remove_default_entry)(ctc_l2dflt_addr_t*);
    int32(*ctc_l2_remove_fdb_by_index)(uint32);
    int32(*ctc_l2_remove_fdb)(ctc_l2_addr_t*);
    int32(*ctc_l2_remove_port_from_default_entry)(ctc_l2dflt_addr_t*);
    int32(*ctc_l2_replace_fdb)(ctc_l2_replace_t*);
    int32(*ctc_l2_set_default_entry_features)(ctc_l2dflt_addr_t*);
    int32(*ctc_l2_set_fid_property)(uint16, ctc_l2_fid_property_t, uint32);
    int32(*ctc_l2_set_nhid_by_logic_port)(uint16, uint32);
    /*##l3if##*/
    int32(*ctc_l3if_add_ecmp_if_member)(uint16, uint16);
    int32(*ctc_l3if_add_router_mac_entry)(uint32, ctc_l3if_rmac_entry_t*);
    int32(*ctc_l3if_add_vmac_low_8bit)(uint16, ctc_l3if_vmac_t*);
    int32(*ctc_l3if_create_ecmp_if)(ctc_l3if_ecmp_if_t*);
    int32(*ctc_l3if_create)(uint16, ctc_l3if_t*);
    int32(*ctc_l3if_deinit)(void);
    int32(*ctc_l3if_destory_ecmp_if)(uint16);
    int32(*ctc_l3if_destory)(uint16, ctc_l3if_t*);
    int32(*ctc_l3if_get_acl_property)(uint16, ctc_acl_property_t*);
    int32(*ctc_l3if_get_interface_router_mac)(uint16, ctc_l3if_router_mac_t*);
    int32(*ctc_l3if_get_l3if_id)(ctc_l3if_t*, uint16*);
    int32(*ctc_l3if_get_property)(uint16, ctc_l3if_property_t, uint32*);
    int32(*ctc_l3if_get_router_mac_entry)(uint32, ctc_l3if_rmac_entry_t*);
    int32(*ctc_l3if_get_router_mac)(mac_addr_t);
    int32(*ctc_l3if_get_vmac_low_8bit)(uint16, ctc_l3if_vmac_t*);
    int32(*ctc_l3if_get_vmac_prefix)(uint32, mac_addr_t);
    int32(*ctc_l3if_init)(void*);
    int32(*ctc_l3if_remove_ecmp_if_member)(uint16, uint16);
    int32(*ctc_l3if_remove_router_mac_entry)(uint32);
    int32(*ctc_l3if_remove_vmac_low_8bit)(uint16, ctc_l3if_vmac_t*);
    int32(*ctc_l3if_set_acl_property)(uint16, ctc_acl_property_t*);
    int32(*ctc_l3if_set_interface_router_mac)(uint16, ctc_l3if_router_mac_t);
    int32(*ctc_l3if_set_property_array)(uint16, ctc_property_array_t*, uint16*);
    int32(*ctc_l3if_set_property)(uint16, ctc_l3if_property_t, uint32);
    int32(*ctc_l3if_set_router_mac)(mac_addr_t);
    int32(*ctc_l3if_set_vmac_prefix)(uint32, mac_addr_t);
    int32(*ctc_l3if_set_vrf_stats_en)(ctc_l3if_vrf_stats_t*);
    /*##learning_aging##*/
    int32(*ctc_aging_get_property)(ctc_aging_table_type_t, ctc_aging_prop_t, uint32*);
    int32(*ctc_aging_read_aging_fifo)(ctc_aging_fifo_info_t*);
    int32(*ctc_aging_set_property)(ctc_aging_table_type_t, ctc_aging_prop_t, uint32);
    int32(*ctc_get_learning_action)(ctc_learning_action_info_t*);
    int32(*ctc_learning_aging_deinit)(void);
    int32(*ctc_learning_aging_init)(void*);
    int32(*ctc_learning_clear_learning_cache)(uint16);
    int32(*ctc_learning_get_cache_entry_valid_bitmap)(uint16*);
    int32(*ctc_learning_read_learning_cache)(uint16, ctc_learning_cache_t*);
    int32(*ctc_set_learning_action)(ctc_learning_action_info_t*);
    /*##linkagg##*/
    int32(*ctc_linkagg_add_ports)(uint16, uint32, ctc_linkagg_port_t*);
    int32(*ctc_linkagg_add_port)(uint16, uint32);
    int32(*ctc_linkagg_create)(ctc_linkagg_group_t*);
    int32(*ctc_linkagg_deinit)(void);
    int32(*ctc_linkagg_destroy)(uint16);
    int32(*ctc_linkagg_get_1st_local_port)(uint8, uint16, uint32*, uint16*);
    int32(*ctc_linkagg_get_lsh)(uint16, uint32, ctc_linkagg_lsh_t*);
    int32(*ctc_linkagg_get_max_mem_num)(uint16*);
    int32(*ctc_linkagg_get_member_ports)(uint16, uint32*, uint16*);
    int32(*ctc_linkagg_get_nonuc_ports)(uint16, uint32*, uint16*);
    int32(*ctc_linkagg_get_property)(uint16, ctc_linkagg_property_t, uint32*);
    int32(*ctc_linkagg_get_psc)(ctc_linkagg_psc_t*);
    int32(*ctc_linkagg_init)(void*);
    int32(*ctc_linkagg_remove_ports)(uint16, uint32, ctc_linkagg_port_t*);
    int32(*ctc_linkagg_remove_port)(uint16, uint32);
    int32(*ctc_linkagg_replace_ports)(uint16, uint32*, uint16);
    int32(*ctc_linkagg_set_lsh)(uint16, uint32, ctc_linkagg_lsh_t*);
    int32(*ctc_linkagg_set_nonuc_ports)(uint16, uint32*, uint16);
    int32(*ctc_linkagg_set_property)(uint16, ctc_linkagg_property_t, uint32);
    int32(*ctc_linkagg_set_psc)(ctc_linkagg_psc_t*);
    /*##mirror##*/
    int32(*ctc_mirror_add_session)(ctc_mirror_dest_t*);
    int32(*ctc_mirror_deinit)(void);
    int32(*ctc_mirror_get_mirror_discard)(ctc_direction_t, ctc_mirror_discard_t, bool*);
    int32(*ctc_mirror_get_port_info)(uint32, ctc_direction_t, bool*, uint8*);
    int32(*ctc_mirror_get_vlan_info)(uint16, ctc_direction_t, bool*, uint8*);
    int32(*ctc_mirror_init)(void*);
    int32(*ctc_mirror_remove_session)(ctc_mirror_dest_t*);
    int32(*ctc_mirror_set_erspan_psc)(ctc_mirror_erspan_psc_t*);
    int32(*ctc_mirror_set_escape_en)(bool);
    int32(*ctc_mirror_set_escape_mac)(ctc_mirror_rspan_escape_t*);
    int32(*ctc_mirror_set_mirror_discard)(ctc_direction_t, uint16, bool);
    int32(*ctc_mirror_set_port_en)(uint32, ctc_direction_t, bool, uint8);
    int32(*ctc_mirror_set_vlan_en)(uint16, ctc_direction_t, bool, uint8);
    /*##monitor##*/
    int32(*ctc_monitor_clear_watermark)(ctc_monitor_watermark_t*);
    int32(*ctc_monitor_deinit)(void);
    int32(*ctc_monitor_get_config2)(ctc_monitor_config_type_t, void*);
    int32(*ctc_monitor_get_config)(ctc_monitor_config_t*);
    int32(*ctc_monitor_get_global_config)(ctc_monitor_glb_cfg_t*);
    int32(*ctc_monitor_get_watermark)(ctc_monitor_watermark_t*);
    int32(*ctc_monitor_init)(void*);
    int32(*ctc_monitor_register_cb)(ctc_monitor_fn_t, void*);
    int32(*ctc_monitor_set_config2)(ctc_monitor_config_type_t, void*);
    int32(*ctc_monitor_set_config)(ctc_monitor_config_t*);
    int32(*ctc_monitor_set_global_config)(ctc_monitor_glb_cfg_t*);
    /*##mpls##*/
    int32(*ctc_mpls_add_ilm)(ctc_mpls_ilm_t*);
    int32(*ctc_mpls_add_l2vpn_pw)(ctc_mpls_l2vpn_pw_t*);
    int32(*ctc_mpls_add_stats)(ctc_mpls_stats_index_t*);
    int32(*ctc_mpls_deinit)(void);
    int32(*ctc_mpls_del_ilm)(ctc_mpls_ilm_t*);
    int32(*ctc_mpls_del_l2vpn_pw)(ctc_mpls_l2vpn_pw_t*);
    int32(*ctc_mpls_get_ilm_property)(ctc_mpls_property_t*);
    int32(*ctc_mpls_get_ilm)(uint32*, ctc_mpls_ilm_t*);
    int32(*ctc_mpls_init)(ctc_mpls_init_t*);
    int32(*ctc_mpls_remove_stats)(ctc_mpls_stats_index_t*);
    int32(*ctc_mpls_set_ilm_property)(ctc_mpls_property_t*);
    int32(*ctc_mpls_update_ilm)(ctc_mpls_ilm_t*);
    /*##nexthop##*/
    int32(*ctc_nexthop_deinit)(void);
    int32(*ctc_nexthop_init)(ctc_nh_global_cfg_t*);
    int32(*ctc_nh_add_aps)(uint32, ctc_nh_aps_param_t*);
    int32(*ctc_nh_add_ecmp)(uint32, ctc_nh_ecmp_nh_param_t*);
    int32(*ctc_nh_add_fp)(ctc_nh_fp_edit_t*);
    int32(*ctc_nh_add_iloop)(uint32, ctc_loopback_nexthop_param_t*);
    int32(*ctc_nh_add_ip_tunnel)(uint32, ctc_ip_tunnel_nh_param_t*);
    int32(*ctc_nh_add_ipuc)(uint32, ctc_ip_nh_param_t*);
    int32(*ctc_nh_add_l2uc)(uint32, ctc_nh_param_brguc_sub_type_t);
    int32(*ctc_nh_add_mcast)(uint32, ctc_mcast_nh_param_group_t*);
    int32(*ctc_nh_add_misc)(uint32, ctc_misc_nh_param_t*);
    int32(*ctc_nh_add_mpls_tunnel_label)(uint16, ctc_mpls_nexthop_tunnel_param_t*);
    int32(*ctc_nh_add_mpls)(uint32, ctc_mpls_nexthop_param_t*);
    int32(*ctc_nh_add_nexthop_mac)(uint32, ctc_nh_nexthop_mac_param_t*);
    int32(*ctc_nh_add_nsh_edit)(uint16, ctc_nh_nsh_param_t*);
    int32(*ctc_nh_add_overlay_tunnel)(uint32, ctc_nh_ol_tunnel_t*);
    int32(*ctc_nh_add_overlay)(uint32, ctc_nh_overlay_param_t*);
    int32(*ctc_nh_add_overlay_vni)(uint32*, ctc_nh_ol_vni_t*);
    int32(*ctc_nh_add_rspan)(uint32, ctc_rspan_nexthop_param_t*);
    int32(*ctc_nh_add_srh_edit)(uint32*, ctc_nh_srh_edit_param_t*);
    int32(*ctc_nh_add_srv6)(uint32, ctc_nh_srv6_param_t*);
    int32(*ctc_nh_add_trill)(uint32, ctc_nh_trill_param_t*);
    int32(*ctc_nh_add_udf_profile)(ctc_nh_udf_profile_param_t*);
    int32(*ctc_nh_add_wlan_tunnel)(uint32, ctc_nh_wlan_tunnel_param_t*);
    int32(*ctc_nh_add_xlate)(uint32, ctc_vlan_edit_nh_param_t*);
    int32(*ctc_nh_get_l2uc)(uint32, ctc_nh_param_brguc_sub_type_t, uint32*);
    int32(*ctc_nh_get_max_ecmp)(uint16*);
    int32(*ctc_nh_get_mcast_nh)(uint32, uint32*);
    int32(*ctc_nh_get_mpls_tunnel_label)(uint16, ctc_mpls_nexthop_tunnel_param_t*);
    int32(*ctc_nh_get_nh_info)(uint32, ctc_nh_info_t*);
    int32(*ctc_nh_get_overlay_tunnel)(uint32, ctc_nh_ol_tunnel_t*);
    int32(*ctc_nh_get_resolved_dsnh_offset)(ctc_nh_reserved_dsnh_offset_type_t, uint32*);
    int32(*ctc_nh_remove_aps)(uint32, uint8);
    int32(*ctc_nh_remove_ecmp)(uint32);
    int32(*ctc_nh_remove_fp)(uint32);
    int32(*ctc_nh_remove_iloop)(uint32);
    int32(*ctc_nh_remove_ip_tunnel)(uint32);
    int32(*ctc_nh_remove_ipuc)(uint32);
    int32(*ctc_nh_remove_l2uc)(uint32);
    int32(*ctc_nh_remove_mcast)(uint32);
    int32(*ctc_nh_remove_misc)(uint32);
    int32(*ctc_nh_remove_mpls_tunnel_label)(uint16);
    int32(*ctc_nh_remove_mpls)(uint32);
    int32(*ctc_nh_remove_nexthop_mac)(uint32);
    int32(*ctc_nh_remove_nsh_edit)(uint16);
    int32(*ctc_nh_remove_overlay_tunnel)(uint32);
    int32(*ctc_nh_remove_overlay)(uint32);
    int32(*ctc_nh_remove_overlay_vni)(uint32);
    int32(*ctc_nh_remove_rspan)(uint32);
    int32(*ctc_nh_remove_srh_edit)(uint32);
    int32(*ctc_nh_remove_srv6)(uint32);
    int32(*ctc_nh_remove_trill)(uint32);
    int32(*ctc_nh_remove_udf_profile)(uint8);
    int32(*ctc_nh_remove_wlan_tunnel)(uint32);
    int32(*ctc_nh_remove_xlate)(uint32);
    int32(*ctc_nh_replace_mcast_members)(uint32, ctc_mcast_nh_param_member_t*, uint32);
    int32(*ctc_nh_set_global_config)(ctc_nh_global_cfg_t*);
    int32(*ctc_nh_set_max_ecmp)(uint16);
    int32(*ctc_nh_set_nh_drop)(uint32, ctc_nh_drop_info_t*);
    int32(*ctc_nh_swap_mpls_tunnel_label)(uint16, uint16);
    int32(*ctc_nh_traverse_mcast)(ctc_nh_mcast_traverse_fn, ctc_nh_mcast_traverse_t*);
    int32(*ctc_nh_update_aps)(uint32, ctc_nh_aps_param_t*);
    int32(*ctc_nh_update_ecmp)(uint32, ctc_nh_ecmp_nh_param_t*);
    int32(*ctc_nh_update_fp)(ctc_nh_fp_edit_t*);
    int32(*ctc_nh_update_ip_tunnel)(uint32, ctc_ip_tunnel_nh_param_t*);
    int32(*ctc_nh_update_ipuc)(uint32, ctc_ip_nh_param_t*);
    int32(*ctc_nh_update_mcast)(uint32, ctc_mcast_nh_param_group_t*);
    int32(*ctc_nh_update_misc)(uint32, ctc_misc_nh_param_t*);
    int32(*ctc_nh_update_mpls_tunnel_label)(uint16, ctc_mpls_nexthop_tunnel_param_t*);
    int32(*ctc_nh_update_mpls)(uint32, ctc_mpls_nexthop_param_t*);
    int32(*ctc_nh_update_nexthop_mac)(uint32, ctc_nh_nexthop_mac_param_t*);
    int32(*ctc_nh_update_nsh_edit)(uint16, ctc_nh_nsh_param_t*);
    int32(*ctc_nh_update_overlay_tunnel)(uint32, ctc_nh_ol_tunnel_t*);
    int32(*ctc_nh_update_overlay)(uint32, ctc_nh_overlay_param_t*);
    int32(*ctc_nh_update_overlay_vni)(uint32, ctc_nh_ol_vni_t*);
    int32(*ctc_nh_update_srh_edit)(uint32, ctc_nh_srh_edit_param_t*);
    int32(*ctc_nh_update_srv6)(uint32, ctc_nh_srv6_param_t*);
    int32(*ctc_nh_update_trill)(uint32, ctc_nh_trill_param_t*);
    int32(*ctc_nh_update_wlan_tunnel)(uint32, ctc_nh_wlan_tunnel_param_t*);
    int32(*ctc_nh_update_xlate)(uint32, ctc_vlan_edit_nh_param_t*);
    /*##npm##*/
    int32(*ctc_npm_clear_stats)(uint8, uint32);
    int32(*ctc_npm_create_im_flow)(ctc_npm_im_flow_t*);
    int32(*ctc_npm_deinit)(void);
    int32(*ctc_npm_destory_im_flow)(uint32);
    int32(*ctc_npm_get_global_config)(uint8, ctc_npm_global_cfg_t*);
    int32(*ctc_npm_get_im_flow_property)(ctc_npm_im_flow_property_t*);
    int32(*ctc_npm_get_stats)(uint8, uint32, ctc_npm_stats_t*);
    int32(*ctc_npm_init)(void*);
    int32(*ctc_npm_set_config)(uint8, ctc_npm_cfg_t*);
    int32(*ctc_npm_set_global_config)(uint8, ctc_npm_global_cfg_t*);
    int32(*ctc_npm_set_im_flow_property)(ctc_npm_im_flow_property_t*);
    int32(*ctc_npm_set_transmit_en)(uint8, uint32, uint8);
    /*##oam##*/
    int32(*ctc_oam_add_lmep)(ctc_oam_lmep_t*);
    int32(*ctc_oam_add_maid)(ctc_oam_maid_t*);
    int32(*ctc_oam_add_mip)(ctc_oam_mip_t*);
    int32(*ctc_oam_add_rmep)(ctc_oam_rmep_t*);
    int32(*ctc_oam_clear_trpt_stats)(uint8, uint8);
    int32(*ctc_oam_deinit)(void);
    int32(*ctc_oam_get_defect_info)(uint8, void*);
    int32(*ctc_oam_get_mep_info)(uint8, ctc_oam_mep_info_t*);
    int32(*ctc_oam_get_mep_info_with_key)(ctc_oam_mep_info_with_key_t*);
    int32(*ctc_oam_get_stats)(ctc_oam_stats_info_t*);
    int32(*ctc_oam_get_trpt_stats)(uint8, uint8, ctc_oam_trpt_stats_t*);
    int32(*ctc_oam_init)(ctc_oam_global_t*);
    int32(*ctc_oam_remove_lmep)(ctc_oam_lmep_t*);
    int32(*ctc_oam_remove_maid)(ctc_oam_maid_t*);
    int32(*ctc_oam_remove_mip)(ctc_oam_mip_t*);
    int32(*ctc_oam_remove_rmep)(ctc_oam_rmep_t*);
    int32(*ctc_oam_set_property)(ctc_oam_property_t*);
    int32(*ctc_oam_set_trpt_cfg)(ctc_oam_trpt_t*);
    int32(*ctc_oam_set_trpt_en)(uint8, uint8, uint8);
    int32(*ctc_oam_update_lmep)(ctc_oam_update_t*);
    int32(*ctc_oam_update_rmep)(ctc_oam_update_t*);
    /*##overlay_tunnel##*/
    int32(*ctc_overlay_tunnel_add_tunnel)(ctc_overlay_tunnel_param_t*);
    int32(*ctc_overlay_tunnel_deinit)(void);
    int32(*ctc_overlay_tunnel_get_fid)(uint32, uint16*);
    int32(*ctc_overlay_tunnel_get_vn_id)(uint16, uint32*);
    int32(*ctc_overlay_tunnel_init)(void*);
    int32(*ctc_overlay_tunnel_remove_tunnel)(ctc_overlay_tunnel_param_t*);
    int32(*ctc_overlay_tunnel_set_fid)(uint32, uint16);
    int32(*ctc_overlay_tunnel_update_tunnel)(ctc_overlay_tunnel_param_t*);
    /*##packet##*/
    int32(*ctc_packet_create_netif)(uint8, ctc_pkt_netif_t*);
    int32(*ctc_packet_decap)(ctc_pkt_rx_t*);
    int32(*ctc_packet_deinit)(void);
    int32(*ctc_packet_destory_netif)(uint8, ctc_pkt_netif_t*);
    int32(*ctc_packet_encap)(ctc_pkt_tx_t*);
    int32(*ctc_packet_get_netif)(uint8, ctc_pkt_netif_t*);
    int32(*ctc_packet_init)(void*);
    int32(*ctc_packet_rx_register)(ctc_pkt_rx_register_t*);
    int32(*ctc_packet_rx_unregister)(ctc_pkt_rx_register_t*);
    int32(*ctc_packet_set_tx_timer)(uint8, ctc_pkt_tx_timer_t*);
    int32(*ctc_packet_tx_alloc2)(ctc_pkt_buf_pool_t*);
    int32(*ctc_packet_tx_alloc)(uint32, void**);
    int32(*ctc_packet_tx_array)(ctc_pkt_tx_t**, uint32, ctc_pkt_callback, void*);
    int32(*ctc_packet_tx_free2)(ctc_pkt_buf_pool_t*);
    int32(*ctc_packet_tx_free)(void*);
    int32(*ctc_packet_tx)(ctc_pkt_tx_t*);
    /*##parser##*/
    int32(*ctc_parser_deinit)(void);
    int32(*ctc_parser_enable_l3_type)(ctc_parser_l3_type_t, bool);
    int32(*ctc_parser_get_ecmp_hash_field)(ctc_parser_ecmp_hash_ctl_t*);
    int32(*ctc_parser_get_efd_hash_field)(ctc_parser_efd_hash_ctl_t*);
    int32(*ctc_parser_get_global_cfg)(ctc_parser_global_cfg_t*);
    int32(*ctc_parser_get_l2_flex_header)(ctc_parser_l2flex_header_t*);
    int32(*ctc_parser_get_l3_flex_header)(ctc_parser_l3flex_header_t*);
    int32(*ctc_parser_get_l4_app_ctl)(ctc_parser_l4app_ctl_t*);
    int32(*ctc_parser_get_l4_app_data_ctl)(uint8, ctc_parser_l4_app_data_entry_t*);
    int32(*ctc_parser_get_l4_flex_header)(ctc_parser_l4flex_header_t*);
    int32(*ctc_parser_get_lb_hash_field)(ctc_lb_hash_fields_t*);
    int32(*ctc_parser_get_lb_hash_offset)(ctc_lb_hash_offset_t*);
    int32(*ctc_parser_get_lb_hash_poly)(ctc_lb_hash_poly_t*);
    int32(*ctc_parser_get_lb_hash_sel_ext)(ctc_lb_hash_selector_ext_t*);
    int32(*ctc_parser_get_lb_hash_sel_mapping)(ctc_lb_hash_selector_remap_t*);
    int32(*ctc_parser_get_max_length_filed)(uint16*);
    int32(*ctc_parser_get_pbb_header)(ctc_parser_pbb_header_t*);
    int32(*ctc_parser_get_tpid)(ctc_parser_l2_tpid_t, uint16*);
    int32(*ctc_parser_get_trill_header)(ctc_parser_trill_header_t*);
    int32(*ctc_parser_get_udf)(uint32, ctc_parser_udf_t*);
    int32(*ctc_parser_get_vlan_parser_num)(uint8*);
    int32(*ctc_parser_init)(void*);
    int32(*ctc_parser_map_l3_type)(uint8, ctc_parser_l2_protocol_entry_t*);
    int32(*ctc_parser_map_l4_type)(uint8, ctc_parser_l3_protocol_entry_t*);
    int32(*ctc_parser_set_ecmp_hash_field)(ctc_parser_ecmp_hash_ctl_t*);
    int32(*ctc_parser_set_efd_hash_field)(ctc_parser_efd_hash_ctl_t*);
    int32(*ctc_parser_set_global_cfg)(ctc_parser_global_cfg_t*);
    int32(*ctc_parser_set_l2_flex_header)(ctc_parser_l2flex_header_t*);
    int32(*ctc_parser_set_l3_flex_header)(ctc_parser_l3flex_header_t*);
    int32(*ctc_parser_set_l4_app_ctl)(ctc_parser_l4app_ctl_t*);
    int32(*ctc_parser_set_l4_app_data_ctl)(uint8, ctc_parser_l4_app_data_entry_t*);
    int32(*ctc_parser_set_l4_flex_header)(ctc_parser_l4flex_header_t*);
    int32(*ctc_parser_set_lb_hash_field)(ctc_lb_hash_fields_t*);
    int32(*ctc_parser_set_lb_hash_offset)(ctc_lb_hash_offset_t*);
    int32(*ctc_parser_set_lb_hash_poly)(ctc_lb_hash_poly_t*);
    int32(*ctc_parser_set_lb_hash_sel_ext)(ctc_lb_hash_selector_ext_t*);
    int32(*ctc_parser_set_lb_hash_sel_mapping)(ctc_lb_hash_selector_remap_t*);
    int32(*ctc_parser_set_max_length_field)(uint16);
    int32(*ctc_parser_set_pbb_header)(ctc_parser_pbb_header_t*);
    int32(*ctc_parser_set_tpid)(ctc_parser_l2_tpid_t, uint16);
    int32(*ctc_parser_set_trill_header)(ctc_parser_trill_header_t*);
    int32(*ctc_parser_set_udf)(uint32, ctc_parser_udf_t*);
    int32(*ctc_parser_set_vlan_parser_num)(uint8);
    int32(*ctc_parser_unmap_l3_type)(uint8);
    int32(*ctc_parser_unmap_l4_type)(uint8);
    /*##pdu##*/
    int32(*ctc_l2pdu_classify_l2pdu)(ctc_pdu_l2pdu_type_t, uint8, ctc_pdu_l2pdu_key_t*);
    int32(*ctc_l2pdu_get_classified_key)(ctc_pdu_l2pdu_type_t, uint8, ctc_pdu_l2pdu_key_t*);
    int32(*ctc_l2pdu_get_global_action)(ctc_pdu_l2pdu_type_t, uint8, ctc_pdu_global_l2pdu_action_t*);
    int32(*ctc_l2pdu_get_port_action)(uint32, uint8, ctc_pdu_port_l2pdu_action_t*);
    int32(*ctc_l2pdu_set_global_action)(ctc_pdu_l2pdu_type_t, uint8, ctc_pdu_global_l2pdu_action_t*);
    int32(*ctc_l2pdu_set_port_action)(uint32, uint8, ctc_pdu_port_l2pdu_action_t);
    int32(*ctc_l3pdu_classify_l3pdu)(ctc_pdu_l3pdu_type_t, uint8, ctc_pdu_l3pdu_key_t*);
    int32(*ctc_l3pdu_get_classified_key)(ctc_pdu_l3pdu_type_t, uint8, ctc_pdu_l3pdu_key_t*);
    int32(*ctc_l3pdu_get_global_action)(ctc_pdu_l3pdu_type_t, uint8, ctc_pdu_global_l3pdu_action_t*);
    int32(*ctc_l3pdu_get_l3if_action)(uint16, uint8, ctc_pdu_l3if_l3pdu_action_t*);
    int32(*ctc_l3pdu_set_global_action)(ctc_pdu_l3pdu_type_t, uint8, ctc_pdu_global_l3pdu_action_t*);
    int32(*ctc_l3pdu_set_l3if_action)(uint16, uint8, ctc_pdu_l3if_l3pdu_action_t);
    int32(*ctc_pdu_deinit)(void);
    int32(*ctc_pdu_init)(void*);
    /*##pon##*/
    int32(*ctc_pon_create_gem_port)(ctc_pon_gem_port_t*);
    int32(*ctc_pon_create_vlan_port)(ctc_pon_vlan_port_t*);
    int32(*ctc_pon_deinit)(void*);
    int32(*ctc_pon_destroy_gem_port)(ctc_pon_gem_port_t*);
    int32(*ctc_pon_destroy_vlan_port)(ctc_pon_vlan_port_t*);
    int32(*ctc_pon_get_gem_port)(ctc_pon_gem_port_t*);
    int32(*ctc_pon_get_port_propery)(uint32, ctc_pon_port_cfg_t*);
    int32(*ctc_pon_get_vlan_port)(ctc_pon_vlan_port_t*);
    int32(*ctc_pon_init)(void*);
    int32(*ctc_pon_set_port_propery)(uint32, ctc_pon_port_cfg_t*);
    int32(*ctc_pon_update_gem_port)(ctc_pon_gem_port_t*);
    int32(*ctc_pon_update_vlan_port)(ctc_pon_vlan_port_t*);
    /*##port##*/
    int32(*ctc_get_ipg_size)(ctc_ipg_size_t, uint8*);
    int32(*ctc_get_max_frame_size)(ctc_frame_size_t, uint16*);
    int32(*ctc_get_min_frame_size)(ctc_frame_size_t, uint16*);
    int32(*ctc_port_deinit)(void);
    int32(*ctc_port_get_acl_property)(uint32, ctc_acl_property_t*);
    int32(*ctc_port_get_bpe_property)(uint32, ctc_port_bpe_property_t*);
    int32(*ctc_port_get_bridge_en)(uint32, bool*);
    int32(*ctc_port_get_capability)(uint32, ctc_port_capability_type_t, void*);
    int32(*ctc_port_get_cpu_mac_en)(bool*);
    int32(*ctc_port_get_cross_connect)(uint32, uint32*);
    int32(*ctc_port_get_default_vlan)(uint32, uint16*);
    int32(*ctc_port_get_direction_property)(uint32, ctc_port_direction_property_t, ctc_direction_t, uint32*);
    int32(*ctc_port_get_dot1q_type)(uint32, ctc_dot1q_type_t*);
    int32(*ctc_port_get_flow_ctl_en)(ctc_port_fc_prop_t*);
    int32(*ctc_port_get_interface_mode)(uint32, ctc_port_if_mode_t*);
    int32(*ctc_port_get_ipg)(uint32, ctc_ipg_size_t*);
    int32(*ctc_port_get_isolation)(uint8, ctc_port_isolation_t*);
    int32(*ctc_port_get_learning_en)(uint32, bool*);
    int32(*ctc_port_get_logic_port_property)(uint32, ctc_logic_port_property_t, ctc_direction_t, void*);
    int32(*ctc_port_get_mac_auth)(uint32, bool*);
    int32(*ctc_port_get_mac_en)(uint32, bool*);
    int32(*ctc_port_get_mac_link_up)(uint32, bool*);
    int32(*ctc_port_get_max_frame)(uint32, uint32*);
    int32(*ctc_port_get_min_frame_size)(uint32, uint8*);
    int32(*ctc_port_get_pading_en)(uint32, bool*);
    int32(*ctc_port_get_phy_if_en)(uint32, uint16*, bool*);
    int32(*ctc_port_get_phy_property)(uint32, ctc_port_property_t, void*);
    int32(*ctc_port_get_port_check_en)(uint32, bool*);
    int32(*ctc_port_get_port_en)(uint32, bool*);
    int32(*ctc_port_get_port_mac)(uint32, mac_addr_t*);
    int32(*ctc_port_get_ppbmp)(uint32*, uint16, uint16*);
    int32(*ctc_port_get_preamble)(uint32, uint8*);
    int32(*ctc_port_get_property)(uint32, ctc_port_property_t, uint32*);
    int32(*ctc_port_get_protocol_vlan_en)(uint32, bool*);
    int32(*ctc_port_get_random_log_en)(uint32, ctc_direction_t, bool*);
    int32(*ctc_port_get_random_log_percent)(uint32, ctc_direction_t, uint8*);
    int32(*ctc_port_get_receive_en)(uint32, bool*);
    int32(*ctc_port_get_reflective_bridge_en)(uint32, bool*);
    int32(*ctc_port_get_restriction)(uint32, ctc_port_restriction_t*);
    int32(*ctc_port_get_scl_key_type)(uint32, ctc_direction_t, uint8, ctc_port_scl_key_type_t*);
    int32(*ctc_port_get_scl_property)(uint32, ctc_port_scl_property_t*);
    int32(*ctc_port_get_speed)(uint32, ctc_port_speed_t*);
    int32(*ctc_port_get_srcdiscard_en)(uint32, bool*);
    int32(*ctc_port_get_stag_tpid_index)(uint32, ctc_direction_t, uint8*);
    int32(*ctc_port_get_sub_if_en)(uint32, bool*);
    int32(*ctc_port_get_transmit_en)(uint32, bool*);
    int32(*ctc_port_get_untag_dft_vid)(uint32, bool*, bool*);
    int32(*ctc_port_get_use_outer_ttl)(uint32, bool*);
    int32(*ctc_port_get_vlan_ctl)(uint32, ctc_vlantag_ctl_t*);
    int32(*ctc_port_get_vlan_domain)(uint32, ctc_port_vlan_domain_type_t*);
    int32(*ctc_port_get_vlan_filter_en)(uint32, ctc_direction_t, bool*);
    int32(*ctc_port_get_vlan_range)(uint32, ctc_vlan_range_info_t*, bool*);
    int32(*ctc_port_init)(void*);
    int32(*ctc_port_set_acl_property)(uint32, ctc_acl_property_t*);
    int32(*ctc_port_set_auto_neg)(uint32, uint32);
    int32(*ctc_port_set_bpe_property)(uint32, ctc_port_bpe_property_t*);
    int32(*ctc_port_set_bridge_en)(uint32, bool);
    int32(*ctc_port_set_capability)(uint32, ctc_port_capability_type_t, uint32);
    int32(*ctc_port_set_cpu_mac_en)(bool);
    int32(*ctc_port_set_cross_connect)(uint32, uint32);
    int32(*ctc_port_set_default_cfg)(uint32);
    int32(*ctc_port_set_default_vlan)(uint32, uint16);
    int32(*ctc_port_set_direction_property)(uint32, ctc_port_direction_property_t, ctc_direction_t, uint32);
    int32(*ctc_port_set_dot1q_type)(uint32, ctc_dot1q_type_t);
    int32(*ctc_port_set_flow_ctl_en)(ctc_port_fc_prop_t*);
    int32(*ctc_port_set_interface_mode)(uint32, ctc_port_if_mode_t*);
    int32(*ctc_port_set_ipg)(uint32, ctc_ipg_size_t);
    int32(*ctc_port_set_isolation)(uint8, ctc_port_isolation_t*);
    int32(*ctc_port_set_learning_en)(uint32, bool);
    int32(*ctc_port_set_link_intr)(uint32, uint32);
    int32(*ctc_port_set_logic_port_property)(uint32, ctc_logic_port_property_t, ctc_direction_t, void*);
    int32(*ctc_port_set_loopback)(ctc_port_lbk_param_t*);
    int32(*ctc_port_set_mac_auth)(uint32, bool);
    int32(*ctc_port_set_mac_en)(uint32, bool);
    int32(*ctc_port_set_max_frame)(uint32, uint32);
    int32(*ctc_port_set_min_frame_size)(uint32, uint8);
    int32(*ctc_port_set_pading_en)(uint32, bool);
    int32(*ctc_port_set_phy_if_en)(uint32, bool);
    int32(*ctc_port_set_phy_property)(uint32, ctc_port_property_t, void*);
    int32(*ctc_port_set_port_check_en)(uint32, bool);
    int32(*ctc_port_set_port_en)(uint32, bool);
    int32(*ctc_port_set_port_mac_postfix)(uint32, ctc_port_mac_postfix_t*);
    int32(*ctc_port_set_port_mac_prefix)(ctc_port_mac_prefix_t*);
    int32(*ctc_port_set_preamble)(uint32, uint8);
    int32(*ctc_port_set_property_array)(uint32, ctc_property_array_t*, uint16*);
    int32(*ctc_port_set_property_ext)(uint32, ctc_port_property_t, void*);
    int32(*ctc_port_set_property)(uint32, ctc_port_property_t, uint32);
    int32(*ctc_port_set_protocol_vlan_en)(uint32, bool);
    int32(*ctc_port_set_random_log_en)(uint32, ctc_direction_t, bool);
    int32(*ctc_port_set_random_log_percent)(uint32, ctc_direction_t, uint8);
    int32(*ctc_port_set_receive_en)(uint32, bool);
    int32(*ctc_port_set_reflective_bridge_en)(uint32, bool);
    int32(*ctc_port_set_restriction)(uint32, ctc_port_restriction_t*);
    int32(*ctc_port_set_scl_key_type)(uint32, ctc_direction_t, uint8, ctc_port_scl_key_type_t);
    int32(*ctc_port_set_scl_property)(uint32, ctc_port_scl_property_t*);
    int32(*ctc_port_set_speed)(uint32, ctc_port_speed_t);
    int32(*ctc_port_set_srcdiscard_en)(uint32, bool);
    int32(*ctc_port_set_stag_tpid_index)(uint32, ctc_direction_t, uint8);
    int32(*ctc_port_set_sub_if_en)(uint32, bool);
    int32(*ctc_port_set_transmit_en)(uint32, bool);
    int32(*ctc_port_set_untag_dft_vid)(uint32, bool, bool);
    int32(*ctc_port_set_use_outer_ttl)(uint32, bool);
    int32(*ctc_port_set_vlan_ctl)(uint32, ctc_vlantag_ctl_t);
    int32(*ctc_port_set_vlan_domain)(uint32, ctc_port_vlan_domain_type_t);
    int32(*ctc_port_set_vlan_filter_en)(uint32, ctc_direction_t, bool);
    int32(*ctc_port_set_vlan_range)(uint32, ctc_vlan_range_info_t*, bool);
    int32(*ctc_set_ipg_size)(ctc_ipg_size_t, uint8);
    int32(*ctc_set_max_frame_size)(ctc_frame_size_t, uint16);
    int32(*ctc_set_min_frame_size)(ctc_frame_size_t, uint16);
    /*##ptp##*/
    int32(*ctc_ptp_add_device_clock)(ctc_ptp_clock_t*);
    int32(*ctc_ptp_add_session)(ctc_ptp_session_t*);
    int32(*ctc_ptp_adjust_clock_offset)(uint8, ctc_ptp_time_t*);
    int32(*ctc_ptp_clear_sync_intf_code)(void);
    int32(*ctc_ptp_clear_tod_intf_code)(void);
    int32(*ctc_ptp_deinit)(void);
    int32(*ctc_ptp_get_adjust_delay)(uint32, ctc_ptp_adjust_delay_type_t, int64*);
    int32(*ctc_ptp_get_captured_ts)(uint8, ctc_ptp_capured_ts_t*);
    int32(*ctc_ptp_get_clock_drift)(uint8, ctc_ptp_time_t*);
    int32(*ctc_ptp_get_clock_timestamp)(uint8, ctc_ptp_time_t*);
    int32(*ctc_ptp_get_device_type)(ctc_ptp_device_type_t*);
    int32(*ctc_ptp_get_global_property)(ctc_ptp_global_prop_t, uint32*);
    int32(*ctc_ptp_get_session)(ctc_ptp_session_t*);
    int32(*ctc_ptp_get_sync_intf_code)(uint8, ctc_ptp_sync_intf_code_t*);
    int32(*ctc_ptp_get_sync_intf_toggle_time)(uint8, ctc_ptp_time_t*);
    int32(*ctc_ptp_get_sync_intf)(uint8, ctc_ptp_sync_intf_cfg_t*);
    int32(*ctc_ptp_get_tod_intf_rx_code)(uint8, ctc_ptp_tod_intf_code_t*);
    int32(*ctc_ptp_get_tod_intf_tx_code)(uint8, ctc_ptp_tod_intf_code_t*);
    int32(*ctc_ptp_get_tod_intf)(uint8, ctc_ptp_tod_intf_cfg_t*);
    int32(*ctc_ptp_init)(ctc_ptp_global_config_t*);
    int32(*ctc_ptp_remove_device_clock)(ctc_ptp_clock_t*);
    int32(*ctc_ptp_remove_session)(ctc_ptp_session_t*);
    int32(*ctc_ptp_set_adjust_delay)(uint32, ctc_ptp_adjust_delay_type_t, int64);
    int32(*ctc_ptp_set_clock_drift)(uint8, ctc_ptp_time_t*);
    int32(*ctc_ptp_set_device_type)(ctc_ptp_device_type_t);
    int32(*ctc_ptp_set_global_property)(ctc_ptp_global_prop_t, uint32);
    int32(*ctc_ptp_set_sync_intf_toggle_time)(uint8, ctc_ptp_time_t*);
    int32(*ctc_ptp_set_sync_intf)(uint8, ctc_ptp_sync_intf_cfg_t*);
    int32(*ctc_ptp_set_tod_intf_tx_code)(uint8, ctc_ptp_tod_intf_code_t*);
    int32(*ctc_ptp_set_tod_intf)(uint8, ctc_ptp_tod_intf_cfg_t*);
    /*##qos##*/
    int32(*ctc_qos_clear_policer_stats)(ctc_qos_policer_stats_t*);
    int32(*ctc_qos_clear_queue_stats)(ctc_qos_queue_stats_t*);
    int32(*ctc_qos_clear_stats)(ctc_qos_stats_type_t, void*);
    int32(*ctc_qos_create_sched_group)(ctc_qos_sched_group_id_t*);
    int32(*ctc_qos_deinit)(void);
    int32(*ctc_qos_destroy_sched_group)(ctc_qos_sched_group_id_t*);
    int32(*ctc_qos_get_domain_map)(ctc_qos_domain_map_t*);
    int32(*ctc_qos_get_drop_scheme)(ctc_qos_drop_t*);
    int32(*ctc_qos_get_global_config)(ctc_qos_glb_cfg_t*);
    int32(*ctc_qos_get_policer)(ctc_qos_policer_t*);
    int32(*ctc_qos_get_queue)(ctc_qos_queue_cfg_t*);
    int32(*ctc_qos_get_resrc)(ctc_qos_resrc_t*);
    int32(*ctc_qos_get_sched)(ctc_qos_sched_t*);
    int32(*ctc_qos_get_shape)(ctc_qos_shape_t*);
    int32(*ctc_qos_init)(void*);
    int32(*ctc_qos_query_policer_stats)(ctc_qos_policer_stats_t*);
    int32(*ctc_qos_query_pool_stats)(ctc_qos_resrc_pool_stats_t*);
    int32(*ctc_qos_query_queue_stats)(ctc_qos_queue_stats_t*);
    int32(*ctc_qos_query_stats)(ctc_qos_stats_type_t, void*);
    int32(*ctc_qos_set_domain_map)(ctc_qos_domain_map_t*);
    int32(*ctc_qos_set_drop_scheme)(ctc_qos_drop_t*);
    int32(*ctc_qos_set_global_config)(ctc_qos_glb_cfg_t*);
    int32(*ctc_qos_set_policer)(ctc_qos_policer_t*);
    int32(*ctc_qos_set_queue)(ctc_qos_queue_cfg_t*);
    int32(*ctc_qos_set_resrc)(ctc_qos_resrc_t*);
    int32(*ctc_qos_set_sched)(ctc_qos_sched_t*);
    int32(*ctc_qos_set_shape)(ctc_qos_shape_t*);
    /*##register##*/
    int32(*ctc_global_ctl_get)(ctc_global_control_type_t, void*);
    int32(*ctc_global_ctl_set)(ctc_global_control_type_t, void*);
    int32(*ctc_register_deinit)(void);
    int32(*ctc_register_init)(void*);
    /*##scl##*/
    int32(*ctc_scl_add_action_field_list)(uint32, ctc_scl_field_action_t*, uint32*);
    int32(*ctc_scl_add_action_field)(uint32, ctc_scl_field_action_t*);
    int32(*ctc_scl_add_entry2)(uint32, ctc_scl_entry2_t*);
    int32(*ctc_scl_add_entry)(uint32, ctc_scl_entry_t*);
    int32(*ctc_scl_add_key_field_list)(uint32, ctc_field_key_t*, uint32*);
    int32(*ctc_scl_add_key_field)(uint32, ctc_field_key_t*);
    int32(*ctc_scl_copy_entry)(ctc_scl_copy_entry_t*);
    int32(*ctc_scl_create_group)(uint32, ctc_scl_group_info_t*);
    int32(*ctc_scl_deinit)(void);
    int32(*ctc_scl_destroy_group)(uint32);
    int32(*ctc_scl_get_flex_key_fields)(ctc_scl_flex_key_t*);
    int32(*ctc_scl_get_flex_key_sets)(ctc_scl_flex_key_t*);
    int32(*ctc_scl_get_group_info)(uint32, ctc_scl_group_info_t*);
    int32(*ctc_scl_get_multi_entry)(ctc_scl_query_t*);
    int32(*ctc_scl_init)(void*);
    int32(*ctc_scl_install_entry)(uint32);
    int32(*ctc_scl_install_group)(uint32, ctc_scl_group_info_t*);
    int32(*ctc_scl_remove_action_field)(uint32, ctc_scl_field_action_t*);
    int32(*ctc_scl_remove_all_entry)(uint32);
    int32(*ctc_scl_remove_entry2)(uint32);
    int32(*ctc_scl_remove_entry)(uint32);
    int32(*ctc_scl_remove_key_field)(uint32, ctc_field_key_t*);
    int32(*ctc_scl_set_default_action)(ctc_scl_default_action_t*);
    int32(*ctc_scl_set_entry_priority)(uint32, uint32);
    int32(*ctc_scl_set_flex_key_fields)(ctc_scl_flex_key_t*);
    int32(*ctc_scl_set_hash_field_sel)(ctc_scl_hash_field_sel_t*);
    int32(*ctc_scl_uninstall_entry)(uint32);
    int32(*ctc_scl_uninstall_group)(uint32);
    int32(*ctc_scl_update_action)(uint32, ctc_scl_action_t*);
    /*##sc_oam##*/
    int32(*ctc_sc_oam_add_mep)(uint8, ctc_sc_oam_mep_t*);
    int32(*ctc_sc_oam_deinit)(void);
    int32(*ctc_sc_oam_get_mep_info)(uint8, ctc_sc_oam_mep_info_t*);
    int32(*ctc_sc_oam_get_mep_property)(uint8, ctc_sc_oam_mep_prop_t*);
    int32(*ctc_sc_oam_get_mep)(uint8, ctc_sc_oam_mep_t*);
    int32(*ctc_sc_oam_get_property)(uint8, ctc_sc_oam_prop_t*);
    int32(*ctc_sc_oam_init)(void*);
    int32(*ctc_sc_oam_remove_mep)(uint8, ctc_sc_oam_mep_t*);
    int32(*ctc_sc_oam_set_mep_property)(uint8, ctc_sc_oam_mep_prop_t*);
    int32(*ctc_sc_oam_set_property)(uint8, ctc_sc_oam_prop_t*);
    int32(*ctc_sc_oam_update_mep)(uint8, ctc_sc_oam_mep_t*);
    /*##security##*/
    int32(*ctc_hmac_add_sha_key)(ctc_security_hmac_t*);
    int32(*ctc_hmac_get_sha_key)(ctc_security_hmac_t*, uint32*);
    int32(*ctc_hmac_remove_sha_key)(ctc_security_hmac_t*);
    int32(*ctc_ip_source_guard_add_entry)(ctc_security_ip_source_guard_elem_t*);
    int32(*ctc_ip_source_guard_remove_entry)(ctc_security_ip_source_guard_elem_t*);
    int32(*ctc_mac_security_get_learn_limit)(ctc_security_learn_limit_t*);
    int32(*ctc_mac_security_get_port_mac_limit)(uint32, ctc_maclimit_action_t*);
    int32(*ctc_mac_security_get_port_security)(uint32, bool*);
    int32(*ctc_mac_security_get_system_mac_limit)(ctc_maclimit_action_t*);
    int32(*ctc_mac_security_get_vlan_mac_limit)(uint16, ctc_maclimit_action_t*);
    int32(*ctc_mac_security_set_learn_limit)(ctc_security_learn_limit_t*);
    int32(*ctc_mac_security_set_port_mac_limit)(uint32, ctc_maclimit_action_t);
    int32(*ctc_mac_security_set_port_security)(uint32, bool);
    int32(*ctc_mac_security_set_system_mac_limit)(ctc_maclimit_action_t);
    int32(*ctc_mac_security_set_vlan_mac_limit)(uint16, ctc_maclimit_action_t);
    int32(*ctc_port_isolation_get_route_obey_isolated_en)(bool*);
    int32(*ctc_port_isolation_set_route_obey_isolated_en)(bool);
    int32(*ctc_security_deinit)(void);
    int32(*ctc_security_init)(void*);
    int32(*ctc_storm_ctl_get_cfg)(ctc_security_stmctl_cfg_t*);
    int32(*ctc_storm_ctl_get_global_cfg)(ctc_security_stmctl_glb_cfg_t*);
    int32(*ctc_storm_ctl_set_cfg)(ctc_security_stmctl_cfg_t*);
    int32(*ctc_storm_ctl_set_global_cfg)(ctc_security_stmctl_glb_cfg_t*);
    /*##srv6##*/
    int32(*ctc_srv6_add_my_sid)(ctc_srv6_sid_t*);
    int32(*ctc_srv6_deinit)(void);
    int32(*ctc_srv6_init)(ctc_srv6_global_cfg_t*);
    int32(*ctc_srv6_remove_my_sid)(ctc_srv6_sid_t*);
    int32(*ctc_srv6_update_my_sid)(ctc_srv6_sid_t*);
    /*##stacking##*/
    int32(*ctc_stacking_add_trunk_port)(ctc_stacking_trunk_t*);
    int32(*ctc_stacking_add_trunk_rchip)(ctc_stacking_trunk_t*);
    int32(*ctc_stacking_create_keeplive_group)(uint16);
    int32(*ctc_stacking_create_trunk)(ctc_stacking_trunk_t*);
    int32(*ctc_stacking_deinit)(void);
    int32(*ctc_stacking_destroy_keeplive_group)(uint16);
    int32(*ctc_stacking_destroy_trunk)(ctc_stacking_trunk_t*);
    int32(*ctc_stacking_get_member_ports)(uint8, uint8, uint32*, uint8*);
    int32(*ctc_stacking_get_property)(ctc_stacking_property_t*);
    int32(*ctc_stacking_get_trunk_mcast_profile)(ctc_stacking_trunk_mcast_profile_t*);
    int32(*ctc_stacking_get_trunk_rchip)(ctc_stacking_trunk_t*);
    int32(*ctc_stacking_init)(void*);
    int32(*ctc_stacking_keeplive_add_member)(ctc_stacking_keeplive_t*);
    int32(*ctc_stacking_keeplive_get_members)(ctc_stacking_keeplive_t*);
    int32(*ctc_stacking_keeplive_remove_member)(ctc_stacking_keeplive_t*);
    int32(*ctc_stacking_remove_trunk_port)(ctc_stacking_trunk_t*);
    int32(*ctc_stacking_remove_trunk_rchip)(ctc_stacking_trunk_t*);
    int32(*ctc_stacking_replace_trunk_ports)(ctc_stacking_trunk_t*, uint32*, uint16);
    int32(*ctc_stacking_set_property)(ctc_stacking_property_t*);
    int32(*ctc_stacking_set_trunk_mcast_profile)(ctc_stacking_trunk_mcast_profile_t*);
    /*##stats##*/
    int32(*ctc_stats_clear_cpu_mac_stats)(uint32);
    int32(*ctc_stats_clear_mac_stats)(uint32, ctc_mac_stats_dir_t);
    int32(*ctc_stats_clear_port_log_stats)(uint32, ctc_direction_t);
    int32(*ctc_stats_clear_stats)(uint32);
    int32(*ctc_stats_create_statsid)(ctc_stats_statsid_t*);
    int32(*ctc_stats_deinit)(void);
    int32(*ctc_stats_destroy_statsid)(uint32);
    int32(*ctc_stats_get_cpu_mac_stats)(uint32, ctc_cpu_mac_stats_t*);
    int32(*ctc_stats_get_drop_packet_stats_en)(ctc_stats_discard_t, bool*);
    int32(*ctc_stats_get_global_cfg)(ctc_stats_property_param_t, ctc_stats_property_t*);
    int32(*ctc_stats_get_mac_stats_cfg)(uint32, ctc_mac_stats_prop_type_t, ctc_mac_stats_property_t*);
    int32(*ctc_stats_get_mac_stats)(uint32, ctc_mac_stats_dir_t, ctc_mac_stats_t*);
    int32(*ctc_stats_get_mem_usage)(ctc_stats_mem_usage_t*);
    int32(*ctc_stats_get_port_log_stats)(uint32, ctc_direction_t, ctc_stats_basic_t*);
    int32(*ctc_stats_get_stats)(uint32, ctc_stats_basic_t*);
    int32(*ctc_stats_init)(void*);
    int32(*ctc_stats_intr_callback_func)(uint8*);
    int32(*ctc_stats_register_cb)(ctc_stats_sync_fn_t, void*);
    int32(*ctc_stats_set_drop_packet_stats_en)(ctc_stats_discard_t, bool);
    int32(*ctc_stats_set_global_cfg)(ctc_stats_property_param_t, ctc_stats_property_t);
    int32(*ctc_stats_set_mac_stats_cfg)(uint32, ctc_mac_stats_prop_type_t, ctc_mac_stats_property_t);
    int32(*ctc_stats_set_syncup_cb_internal)(uint32);
    /*##stp##*/
    int32(*ctc_stp_clear_all_inst_state)(uint32);
    int32(*ctc_stp_deinit)(void);
    int32(*ctc_stp_get_state)(uint32, uint8, uint8*);
    int32(*ctc_stp_get_vlan_stpid)(uint16, uint8*);
    int32(*ctc_stp_init)(void*);
    int32(*ctc_stp_set_state)(uint32, uint8, uint8);
    int32(*ctc_stp_set_vlan_stpid)(uint16, uint8);
    /*##sync_ether##*/
    int32(*ctc_sync_ether_deinit)(void);
    int32(*ctc_sync_ether_get_cfg)(uint8, uint8, ctc_sync_ether_cfg_t*);
    int32(*ctc_sync_ether_init)(void*);
    int32(*ctc_sync_ether_set_cfg)(uint8, uint8, ctc_sync_ether_cfg_t*);
    /*##trill##*/
    int32(*ctc_trill_add_route)(ctc_trill_route_t*);
    int32(*ctc_trill_add_tunnel)(ctc_trill_tunnel_t*);
    int32(*ctc_trill_deinit)(void);
    int32(*ctc_trill_init)(void*);
    int32(*ctc_trill_remove_route)(ctc_trill_route_t*);
    int32(*ctc_trill_remove_tunnel)(ctc_trill_tunnel_t*);
    int32(*ctc_trill_update_tunnel)(ctc_trill_tunnel_t*);
    /*##vlan##*/
    int32(*ctc_vlan_add_default_egress_vlan_mapping)(uint32, ctc_vlan_miss_t*);
    int32(*ctc_vlan_add_default_vlan_class)(ctc_vlan_class_type_t, ctc_vlan_miss_t*);
    int32(*ctc_vlan_add_default_vlan_mapping)(uint32, ctc_vlan_miss_t*);
    int32(*ctc_vlan_add_egress_vlan_mapping)(uint32, ctc_egress_vlan_mapping_t*);
    int32(*ctc_vlan_add_ports)(uint8, uint16, ctc_port_bitmap_t);
    int32(*ctc_vlan_add_port)(uint16, uint32);
    int32(*ctc_vlan_add_vlan_class)(ctc_vlan_class_t*);
    int32(*ctc_vlan_add_vlan_mapping)(uint32, ctc_vlan_mapping_t*);
    int32(*ctc_vlan_add_vlan_range)(ctc_vlan_range_info_t*, ctc_vlan_range_t*);
    int32(*ctc_vlan_create_uservlan)(ctc_vlan_uservlan_t*);
    int32(*ctc_vlan_create_vlan_range_group)(ctc_vlan_range_info_t*, bool);
    int32(*ctc_vlan_create_vlan)(uint16);
    int32(*ctc_vlan_deinit)(void);
    int32(*ctc_vlan_destroy_vlan_range_group)(ctc_vlan_range_info_t*);
    int32(*ctc_vlan_destroy_vlan)(uint16);
    int32(*ctc_vlan_get_acl_property)(uint16, ctc_acl_property_t*);
    int32(*ctc_vlan_get_arp_excp_type)(uint16, ctc_exception_type_t*);
    int32(*ctc_vlan_get_bridge_en)(uint16, bool*);
    int32(*ctc_vlan_get_dhcp_excp_type)(uint16, ctc_exception_type_t*);
    int32(*ctc_vlan_get_direction_property)(uint16, ctc_vlan_direction_property_t, ctc_direction_t, uint32*);
    int32(*ctc_vlan_get_egress_vlan_mapping)(uint32, ctc_egress_vlan_mapping_t*);
    int32(*ctc_vlan_get_fid)(uint16, uint16*);
    int32(*ctc_vlan_get_igmp_snoop_en)(uint16, bool*);
    int32(*ctc_vlan_get_learning_en)(uint16, bool*);
    int32(*ctc_vlan_get_mac_auth)(uint16, bool*);
    int32(*ctc_vlan_get_ports)(uint16, uint8, ctc_port_bitmap_t);
    int32(*ctc_vlan_get_property)(uint16, ctc_vlan_property_t, uint32*);
    int32(*ctc_vlan_get_receive_en)(uint16, bool*);
    int32(*ctc_vlan_get_tagged_ports)(uint16, uint8, ctc_port_bitmap_t);
    int32(*ctc_vlan_get_transmit_en)(uint16, bool*);
    int32(*ctc_vlan_get_vlan_mapping)(uint32, ctc_vlan_mapping_t*);
    int32(*ctc_vlan_get_vlan_range_type)(ctc_vlan_range_info_t*, bool*);
    int32(*ctc_vlan_get_vlan_range)(ctc_vlan_range_info_t*, ctc_vlan_range_group_t*, uint8*);
    int32(*ctc_vlan_init)(ctc_vlan_global_cfg_t*);
    int32(*ctc_vlan_remove_all_egress_vlan_mapping_by_port)(uint32);
    int32(*ctc_vlan_remove_all_vlan_class)(ctc_vlan_class_type_t);
    int32(*ctc_vlan_remove_all_vlan_mapping_by_port)(uint32);
    int32(*ctc_vlan_remove_default_egress_vlan_mapping)(uint32);
    int32(*ctc_vlan_remove_default_vlan_class)(ctc_vlan_class_type_t);
    int32(*ctc_vlan_remove_default_vlan_mapping)(uint32);
    int32(*ctc_vlan_remove_egress_vlan_mapping)(uint32, ctc_egress_vlan_mapping_t*);
    int32(*ctc_vlan_remove_ports)(uint8, uint16, ctc_port_bitmap_t);
    int32(*ctc_vlan_remove_port)(uint16, uint32);
    int32(*ctc_vlan_remove_vlan_class)(ctc_vlan_class_t*);
    int32(*ctc_vlan_remove_vlan_mapping)(uint32, ctc_vlan_mapping_t*);
    int32(*ctc_vlan_remove_vlan_range)(ctc_vlan_range_info_t*, ctc_vlan_range_t*);
    int32(*ctc_vlan_set_acl_property)(uint16, ctc_acl_property_t*);
    int32(*ctc_vlan_set_arp_excp_type)(uint16, ctc_exception_type_t);
    int32(*ctc_vlan_set_bridge_en)(uint16, bool);
    int32(*ctc_vlan_set_dhcp_excp_type)(uint16, ctc_exception_type_t);
    int32(*ctc_vlan_set_direction_property)(uint16, ctc_vlan_direction_property_t, ctc_direction_t, uint32);
    int32(*ctc_vlan_set_fid)(uint16, uint16);
    int32(*ctc_vlan_set_igmp_snoop_en)(uint16, bool);
    int32(*ctc_vlan_set_learning_en)(uint16, bool);
    int32(*ctc_vlan_set_mac_auth)(uint16, bool);
    int32(*ctc_vlan_set_property_array)(uint16, ctc_property_array_t*, uint16*);
    int32(*ctc_vlan_set_property)(uint16, ctc_vlan_property_t, uint32);
    int32(*ctc_vlan_set_receive_en)(uint16, bool);
    int32(*ctc_vlan_set_tagged_ports)(uint8, uint16, ctc_port_bitmap_t);
    int32(*ctc_vlan_set_tagged_port)(uint16, uint32, bool);
    int32(*ctc_vlan_set_transmit_en)(uint16, bool);
    int32(*ctc_vlan_update_vlan_mapping)(uint32, ctc_vlan_mapping_t*);
    /*##wlan##*/
    int32(*ctc_wlan_add_client)(ctc_wlan_client_t*);
    int32(*ctc_wlan_add_tunnel)(ctc_wlan_tunnel_t*);
    int32(*ctc_wlan_deinit)(void);
    int32(*ctc_wlan_get_crypt)(ctc_wlan_crypt_t*);
    int32(*ctc_wlan_get_global_cfg)(ctc_wlan_global_cfg_t*);
    int32(*ctc_wlan_init)(ctc_wlan_global_cfg_t*);
    int32(*ctc_wlan_remove_client)(ctc_wlan_client_t*);
    int32(*ctc_wlan_remove_tunnel)(ctc_wlan_tunnel_t*);
    int32(*ctc_wlan_set_crypt)(ctc_wlan_crypt_t*);
    int32(*ctc_wlan_set_global_cfg)(ctc_wlan_global_cfg_t*);
    int32(*ctc_wlan_update_client)(ctc_wlan_client_t*);
    int32(*ctc_wlan_update_tunnel)(ctc_wlan_tunnel_t*);
    /*##xdata##*/
    int32(*ctc_xdata_deinit)(void);
    int32(*ctc_xdata_get_local)(ctc_xdata_local_t*);
    int32(*ctc_xdata_get_path)(ctc_xdata_path_t*);
    int32(*ctc_xdata_get_profile)(ctc_xdata_prof_t*);
    int32(*ctc_xdata_init)(void*);
    int32(*ctc_xdata_set_local)(ctc_xdata_local_t*);
    int32(*ctc_xdata_set_path)(ctc_xdata_path_t*);
    int32(*ctc_xdata_set_profile)(ctc_xdata_prof_t*);
};
typedef struct ctc_api_s ctc_api_t;
/**********************************************************
 * 
 * Functions
 * 
 **********************************************************/
extern int32 ctc_install_api(void);
extern int32 ctc_uninstall_api(void);
extern char* ctc_get_chip_name(void);
extern uint8 ctc_get_chip_type(void);
extern int32 ctc_acl_add_action_field_list(uint32 entry_id, ctc_acl_field_action_t* p_field_list, uint32* p_field_cnt);
extern int32 ctc_acl_add_action_field(uint32 entry_id, ctc_acl_field_action_t* action_field);
extern int32 ctc_acl_add_cid_pair(ctc_acl_cid_pair_t* cid_pair);
extern int32 ctc_acl_add_entry(uint32 group_id, ctc_acl_entry_t* acl_entry);
extern int32 ctc_acl_add_key_field_list(uint32 entry_id, ctc_field_key_t* p_field_list, uint32* p_field_cnt);
extern int32 ctc_acl_add_key_field(uint32 entry_id, ctc_field_key_t* key_field);
extern int32 ctc_acl_add_presel_fields(uint16 presel_id, uint8 fields_cnt, ctc_field_key_t* fields);
extern int32 ctc_acl_add_range_info(ctc_acl_range_t* range_info, uint8 index);
extern int32 ctc_acl_add_udf_entry_key_field(uint32 udf_id, ctc_field_key_t* key_field);
extern int32 ctc_acl_add_udf_entry(ctc_acl_classify_udf_t* udf_entry);
extern int32 ctc_acl_copy_entry(ctc_acl_copy_entry_t* copy_entry);
extern int32 ctc_acl_create_group(uint32 group_id, ctc_acl_group_info_t* group_info);
extern int32 ctc_acl_create_presel(ctc_acl_presel_t* acl_presel);
extern int32 ctc_acl_deinit(void);
extern int32 ctc_acl_destroy_group(uint32 group_id);
extern int32 ctc_acl_destroy_presel(uint16 presel_id);
extern int32 ctc_acl_get_aset_fields(ctc_acl_aset_t* acl_aset);
extern int32 ctc_acl_get_flex_key_fields(ctc_acl_flex_key_t* acl_flex_key);
extern int32 ctc_acl_get_group_info(uint32 group_id, ctc_acl_group_info_t* group_info);
extern int32 ctc_acl_get_league_mode(ctc_acl_league_t* league);
extern int32 ctc_acl_get_multi_entry(ctc_acl_query_t* query);
extern int32 ctc_acl_get_udf_entry(ctc_acl_classify_udf_t* udf_entry);
extern int32 ctc_acl_init(ctc_acl_global_cfg_t* acl_global_cfg);
extern int32 ctc_acl_install_entry(uint32 entry_id);
extern int32 ctc_acl_install_group(uint32 group_id, ctc_acl_group_info_t* group_info);
extern int32 ctc_acl_remove_action_field_list(uint32 entry_id, ctc_acl_field_action_t* p_field_list, uint32* p_field_cnt);
extern int32 ctc_acl_remove_action_field(uint32 entry_id, ctc_acl_field_action_t* action_field);
extern int32 ctc_acl_remove_all_entry(uint32 group_id);
extern int32 ctc_acl_remove_cid_pair(ctc_acl_cid_pair_t* cid_pair);
extern int32 ctc_acl_remove_entry(uint32 entry_id);
extern int32 ctc_acl_remove_key_field_list(uint32 entry_id, ctc_field_key_t* p_field_list, uint32* p_field_cnt);
extern int32 ctc_acl_remove_key_field(uint32 entry_id, ctc_field_key_t* key_field);
extern int32 ctc_acl_remove_presel_fields(uint16 presel_id, uint8 fields_cnt, ctc_field_key_t* fields);
extern int32 ctc_acl_remove_range_info(uint8 index);
extern int32 ctc_acl_remove_udf_entry_key_field(uint32 udf_id, ctc_field_key_t* key_field);
extern int32 ctc_acl_remove_udf_entry(ctc_acl_classify_udf_t* udf_entry);
extern int32 ctc_acl_reorder_entry(ctc_acl_reorder_t* reorder);
extern int32 ctc_acl_reorder_stats(ctc_acl_reorder_t* reorder, uint32* fail_list, uint32* fail_cnt);
extern int32 ctc_acl_replace_block(ctc_acl_replace_t* p_replace);
extern int32 ctc_acl_set_aset_fields(ctc_acl_aset_t* acl_aset);
extern int32 ctc_acl_set_entry_priority(uint32 entry_id, uint32 priority);
extern int32 ctc_acl_set_field_to_hash_field_sel(uint8 key_type, uint8 field_sel_id, ctc_field_key_t* sel_field);
extern int32 ctc_acl_set_flex_key_fields(ctc_acl_flex_key_t* acl_flex_key);
extern int32 ctc_acl_set_hash_field_sel(ctc_acl_hash_field_sel_t* field_sel);
extern int32 ctc_acl_set_league_mode(ctc_acl_league_t* league);
extern int32 ctc_acl_uninstall_entry(uint32 entry_id);
extern int32 ctc_acl_uninstall_group(uint32 group_id);
extern int32 ctc_acl_update_action(uint32 entry_id, ctc_acl_action_t* action);
extern int32 ctc_aps_create_aps_bridge_group(uint16 aps_bridge_group_id, ctc_aps_bridge_group_t* aps_group);
extern int32 ctc_aps_create_raps_mcast_group(uint16 group_id);
extern int32 ctc_aps_deinit(void);
extern int32 ctc_aps_destroy_aps_bridge_group(uint16 aps_bridge_group_id);
extern int32 ctc_aps_destroy_raps_mcast_group(uint16 group_id);
extern int32 ctc_aps_get_aps_bridge_protection_path(uint16 aps_bridge_group_id, uint32* gport);
extern int32 ctc_aps_get_aps_bridge(uint16 aps_bridge_group_id, bool* protect_en);
extern int32 ctc_aps_get_aps_bridge_working_path(uint16 aps_bridge_group_id, uint32* gport);
extern int32 ctc_aps_get_aps_select(uint16 aps_select_group_id, bool* protect_en);
extern int32 ctc_aps_init(void* aps_global_cfg);
extern int32 ctc_aps_set_aps_bridge_group(uint16 aps_bridge_group_id, ctc_aps_bridge_group_t* aps_group);
extern int32 ctc_aps_set_aps_bridge_protection_path(uint16 aps_bridge_group_id, uint32 gport);
extern int32 ctc_aps_set_aps_bridges(ctc_aps_grp_bitmap_t* grp_bitmap);
extern int32 ctc_aps_set_aps_bridge(uint16 aps_bridge_group_id, bool protect_en);
extern int32 ctc_aps_set_aps_bridge_working_path(uint16 aps_bridge_group_id, uint32 gport);
extern int32 ctc_aps_set_aps_selects(ctc_aps_grp_bitmap_t* grp_bitmap);
extern int32 ctc_aps_set_aps_select(uint16 aps_select_group_id, bool protect_en);
extern int32 ctc_aps_update_raps_mcast_member(ctc_raps_member_t* p_raps_mem);
extern int32 ctc_bpe_add_8021br_forward_entry(ctc_bpe_8021br_forward_t* p_extender_fwd);
extern int32 ctc_bpe_deinit(void);
extern int32 ctc_bpe_get_intlk_en(bool* enable);
extern int32 ctc_bpe_get_port_extender(uint32 gport, bool* enable);
extern int32 ctc_bpe_init(void* bpe_global_cfg);
extern int32 ctc_bpe_remove_8021br_forward_entry(ctc_bpe_8021br_forward_t* p_extender_fwd);
extern int32 ctc_bpe_set_intlk_en(bool enable);
extern int32 ctc_bpe_set_port_extender(uint32 gport, ctc_bpe_extender_t* p_extender);
extern int32 ctc_chip_deinit(void);
extern int32 ctc_chip_eunit_install(uint8 eunit_id, ctc_eunit_install_t* p_eunit);
extern int32 ctc_chip_eunit_uninstall(uint8 eunit_id);
extern int32 ctc_chip_get_access_type(ctc_chip_access_type_t* p_access_type);
extern int32 ctc_chip_get_gpio_input(uint8 gpio_id, uint8* in_value);
extern int32 ctc_chip_get_mdio_clock(ctc_chip_mdio_type_t type, uint16* p_freq);
extern int32 ctc_chip_get_phy_mapping(ctc_chip_phy_mapping_para_t* phy_mapping_para);
extern int32 ctc_chip_get_property(uint8 ldev, ctc_chip_property_t chip_prop, void* p_value);
extern int32 ctc_chip_i2c_read(ctc_chip_i2c_read_t* p_i2c_para);
extern int32 ctc_chip_i2c_write(ctc_chip_i2c_write_t* i2c_para);
extern int32 ctc_chip_init_done(void);
extern int32 ctc_chip_init(uint8 ldev_num);
extern int32 ctc_chip_mdio_read(uint8 ldev, ctc_chip_mdio_type_t type, ctc_chip_mdio_para_t* p_para);
extern int32 ctc_chip_mdio_write(uint8 ldev, ctc_chip_mdio_type_t type, ctc_chip_mdio_para_t* p_para);
extern int32 ctc_chip_read_gephy_reg(uint32 gport, ctc_chip_gephy_para_t* gephy_para);
extern int32 ctc_chip_read_i2c_buf(ctc_chip_i2c_scan_read_t* p_i2c_scan_read);
extern int32 ctc_chip_read_xgphy_reg(uint32 gport, ctc_chip_xgphy_para_t* xgphy_para);
extern int32 ctc_chip_set_access_type(ctc_chip_access_type_t access_type);
extern int32 ctc_chip_set_gephy_scan_special_reg(ctc_chip_ge_opt_reg_t* p_scan_opt, bool enable);
extern int32 ctc_chip_set_gpio_mode(uint8 gpio_id, ctc_chip_gpio_mode_t mode);
extern int32 ctc_chip_set_gpio_output(uint8 gpio_id, uint8 out_para);
extern int32 ctc_chip_set_hss12g_enable(uint8 ldev, uint8 macro_id, ctc_chip_serdes_mode_t mode, uint8 enable);
extern int32 ctc_chip_set_i2c_scan_en(bool enable);
extern int32 ctc_chip_set_i2c_scan_para(ctc_chip_i2c_scan_t* p_i2c_para);
extern int32 ctc_chip_set_mac_led_en(bool enable);
extern int32 ctc_chip_set_mac_led_mapping(ctc_chip_mac_led_mapping_t* p_led_map);
extern int32 ctc_chip_set_mac_led_mode(ctc_chip_led_para_t* p_led_para, ctc_chip_mac_led_type_t led_type);
extern int32 ctc_chip_set_mdio_clock(ctc_chip_mdio_type_t type, uint16 freq);
extern int32 ctc_chip_set_phy_mapping(ctc_chip_phy_mapping_para_t* phy_mapping_para);
extern int32 ctc_chip_set_phy_scan_en(bool enable);
extern int32 ctc_chip_set_phy_scan_para(ctc_chip_phy_scan_ctrl_t* p_scan_para);
extern int32 ctc_chip_set_property(uint8 ldev, ctc_chip_property_t chip_prop, void* p_value);
extern int32 ctc_chip_set_serdes_mode(uint8 ldev, ctc_chip_serdes_info_t* p_serdes_info);
extern int32 ctc_chip_set_xgphy_scan_special_reg(ctc_chip_xg_opt_reg_t* scan_opt, uint8 enable);
extern int32 ctc_chip_write_gephy_reg(uint32 gport, ctc_chip_gephy_para_t* gephy_para);
extern int32 ctc_chip_write_xgphy_reg(uint32 gport, ctc_chip_xgphy_para_t* xgphy_para);
extern int32 ctc_datapath_deinit(void);
extern int32 ctc_datapath_init(uint8 ldev, void* p_global_cfg);
extern int32 ctc_datapath_sim_init(void);
extern int32 ctc_get_chip_clock(uint16* freq);
extern int32 ctc_get_chip_sensor(uint8 ldev, ctc_chip_sensor_type_t type, uint32* p_value);
extern int32 ctc_get_gchip_id(uint8 ldev, uint8* gchip_id);
extern int32 ctc_get_local_chip_num(uint8* ldev_num);
extern int32 ctc_init_pll_hss(void);
extern int32 ctc_parse_datapath(char* datapath_config_file);
extern int32 ctc_set_chip_global_cfg(ctc_chip_global_cfg_t* chip_cfg);
extern int32 ctc_set_gchip_id(uint8 ldev, uint8 gchip_id);
extern int32 ctc_diag_deinit(void);
extern int32 ctc_diag_get_drop_info(uint8 ldev, ctc_diag_drop_t* p_drop);
extern int32 ctc_diag_get_lb_distribution(uint8 ldev,ctc_diag_lb_dist_t* p_para);
extern int32 ctc_diag_get_lb_hash(uint8 ldev, ctc_field_key_t* p_field_list, uint32 field_cnt, ctc_diag_lb_hash_t* p_rslt);
extern int32 ctc_diag_get_memory_usage(uint8 ldev,ctc_diag_mem_usage_t* p_para);
extern int32 ctc_diag_get_pkt_trace(uint8 ldev, ctc_diag_pkt_trace_result_t* p_rslt);
extern int32 ctc_diag_get_property(uint8 ldev, ctc_diag_property_t prop, void* p_value);
extern int32 ctc_diag_get_queue_depth(uint8 ldev, ctc_diag_queue_depth_t* p_queue);
extern int32 ctc_diag_init(void* init_cfg);
extern int32 ctc_diag_mem_bist(uint8 ldev, ctc_diag_bist_mem_type_t mem_type, uint8* p_err_mem_id);
extern int32 ctc_diag_set_lb_distribution(uint8 ldev,ctc_diag_lb_dist_t* p_para);
extern int32 ctc_diag_set_property(uint8 ldev, ctc_diag_property_t prop, void* p_value);
extern int32 ctc_diag_tbl_control(uint8 ldev, ctc_diag_tbl_t* p_para);
extern int32 ctc_diag_trigger_pkt_trace(uint8 ldev, ctc_diag_pkt_trace_t* p_trace);
extern int32 ctc_dma_deinit(void);
extern int32 ctc_dma_init(ctc_dma_global_cfg_t* dma_global_cfg);
extern int32 ctc_dma_rw_table(ctc_dma_tbl_rw_t* tbl_cfg);
extern int32 ctc_dma_tx_pkt(ctc_pkt_tx_t* tx_cfg);
extern int32 ctc_dot1ae_add_entry(ctc_dot1ae_entry_t* p_ctc_entry);
extern int32 ctc_dot1ae_add_sec_chan(uint8 ldev, ctc_dot1ae_sc_t* p_chan);
extern int32 ctc_dot1ae_clear_stats(uint8 ldev, uint32 chan_id, uint8 an);
extern int32 ctc_dot1ae_deinit(void);
extern int32 ctc_dot1ae_get_global_cfg(ctc_dot1ae_glb_cfg_t* p_glb_cfg);
extern int32 ctc_dot1ae_get_hash_field_sel(ctc_dot1ae_hash_sel_t* p_hash_sel);
extern int32 ctc_dot1ae_get_sec_chan(uint8 ldev, ctc_dot1ae_sc_t* p_chan);
extern int32 ctc_dot1ae_get_stats(uint8 ldev, uint32 chan_id, ctc_dot1ae_stats_t* p_stats);
extern int32 ctc_dot1ae_init(void* dot1ae_global_cfg);
extern int32 ctc_dot1ae_remove_entry(uint32 entry_id);
extern int32 ctc_dot1ae_remove_sec_chan(uint8 ldev, ctc_dot1ae_sc_t* p_chan);
extern int32 ctc_dot1ae_set_global_cfg(ctc_dot1ae_glb_cfg_t* p_glb_cfg);
extern int32 ctc_dot1ae_set_hash_field_sel(ctc_dot1ae_hash_sel_t* p_hash_sel);
extern int32 ctc_dot1ae_update_sec_chan(uint8 ldev, ctc_dot1ae_sc_t* p_chan);
extern int32 ctc_dtel_deinit(void);
extern int32 ctc_dtel_get_ifa_cfg(ctc_dtel_ifa_cfg_t* p_cfg);
extern int32 ctc_dtel_get_int_cfg(ctc_dtel_int_cfg_t* p_cfg);
extern int32 ctc_dtel_get_property(ctc_dtel_property_t type, void* value);
extern int32 ctc_dtel_init(void* p_global_cfg);
extern int32 ctc_dtel_set_ifa_cfg(ctc_dtel_ifa_cfg_t* p_cfg);
extern int32 ctc_dtel_set_int_cfg(ctc_dtel_int_cfg_t* p_cfg);
extern int32 ctc_dtel_set_property(ctc_dtel_property_t type, void* value);
extern int32 ctc_efd_deinit(void);
extern int32 ctc_efd_get_global_ctl(ctc_efd_global_control_type_t type, void* value);
extern int32 ctc_efd_init(void* p_global_cfg);
extern int32 ctc_efd_register_cb(ctc_efd_fn_t callback, void* userdata);
extern int32 ctc_efd_set_global_ctl(ctc_efd_global_control_type_t type, void* value);
extern int32 ctc_fcoe_add_route(ctc_fcoe_route_t* p_fcoe_route);
extern int32 ctc_fcoe_deinit(void);
extern int32 ctc_fcoe_init(void* fcoe_global_cfg);
extern int32 ctc_fcoe_remove_route(ctc_fcoe_route_t* p_fcoe_route);
extern int32 ctc_flexe_add_client(uint8 ldev, uint32 client_id, ctc_flexe_client_t* p_client);
extern int32 ctc_flexe_create_group(uint8 ldev, uint32 group_id, ctc_flexe_grp_t* p_group);
extern int32 ctc_flexe_deinit(void);
extern int32 ctc_flexe_destroy_group(uint8 ldev, uint32 group_id);
extern int32 ctc_flexe_get_client_cross(uint8 ldev, ctc_flexe_cross_t* p_cross);
extern int32 ctc_flexe_get_client_link_up(uint8 ldev, uint32 client_id, bool* p_is_up);
extern int32 ctc_flexe_get_client_property(uint8 ldev, uint32 client_id, ctc_flexe_client_prop_t client_prop, void* p_value);
extern int32 ctc_flexe_get_client(uint8 ldev, uint32 client_id, ctc_flexe_client_t* p_client);
extern int32 ctc_flexe_get_en(uint8 ldev, uint16 serdes_id, uint8* enable);
extern int32 ctc_flexe_get_group_property(uint8 ldev, uint32 group_id, ctc_flexe_grp_prop_t group_prop, void* p_value);
extern int32 ctc_flexe_get_group(uint8 ldev, uint32 group_id, ctc_flexe_grp_t* p_group);
extern int32 ctc_flexe_get_phy_property(uint8 ldev, uint32 serdes_id, ctc_flexe_phy_prop_t phy_prop, void* p_value);
extern int32 ctc_flexe_init(void* p_cfg);
extern int32 ctc_flexe_remove_client(uint8 ldev, uint32 client_id);
extern int32 ctc_flexe_set_client_cross(uint8 ldev, ctc_flexe_cross_t* p_cross);
extern int32 ctc_flexe_set_client_property(uint8 ldev, uint32 client_id, ctc_flexe_client_prop_t client_prop, void* p_value);
extern int32 ctc_flexe_set_en(uint8 ldev, uint16 serdes_id, uint8 enable);
extern int32 ctc_flexe_set_group_property(uint8 ldev, uint32 group_id, ctc_flexe_grp_prop_t group_prop, void* p_value);
extern int32 ctc_flexe_set_phy_property(uint8 ldev, uint16 serdes_id, ctc_flexe_phy_prop_t phy_prop, void* p_value);
extern int32 ctc_ftm_get_hash_poly(ctc_ftm_hash_poly_t* hash_poly);
extern int32 ctc_ftm_get_profile_specs(uint32 spec_type, uint32* value);
extern int32 ctc_ftm_mem_alloc(ctc_ftm_profile_info_t* ctc_profile_info);
extern int32 ctc_ftm_mem_change(ctc_ftm_change_profile_t* p_profile);
extern int32 ctc_ftm_mem_free(void);
extern int32 ctc_ftm_set_hash_poly(ctc_ftm_hash_poly_t* hash_poly);
extern int32 ctc_ftm_set_profile_specs(uint32 spec_type, uint32 value);
extern int32 ctc_alloc_internal_port(ctc_internal_port_assign_para_t* port_assign);
extern int32 ctc_free_internal_port(ctc_internal_port_assign_para_t* port_assign);
extern int32 ctc_internal_port_deinit(void);
extern int32 ctc_internal_port_init(void* p_global_cfg);
extern int32 ctc_set_internal_port(ctc_internal_port_assign_para_t* port_assign);
extern int32 ctc_interrupt_clear_status(uint8 ldev, ctc_intr_type_t* p_type);
extern int32 ctc_interrupt_deinit(void);
extern int32 ctc_interrupt_get_en(uint8 ldev, ctc_intr_type_t* p_type, uint32* p_enable);
extern int32 ctc_interrupt_get_status(uint8 ldev, ctc_intr_type_t* p_type, ctc_intr_status_t* p_status);
extern int32 ctc_interrupt_init(void* p_global_cfg);
extern int32 ctc_interrupt_register_event_cb(ctc_interrupt_event_t event, CTC_INTERRUPT_EVENT_FUNC cb);
extern int32 ctc_interrupt_set_en(uint8 ldev, ctc_intr_type_t* p_type, uint32 enable);
extern int32 ctc_ipfix_add_entry(ctc_ipfix_data_t* p_data);
extern int32 ctc_ipfix_deinit(void);
extern int32 ctc_ipfix_delete_entry(ctc_ipfix_data_t* p_data);
extern int32 ctc_ipfix_get_flex_key_fields(ctc_ipfix_flex_key_t* ipfix_flex_key);
extern int32 ctc_ipfix_get_flex_key_sets(ctc_ipfix_flex_key_t* ipfix_flex_key);
extern int32 ctc_ipfix_get_flow_cfg(ctc_ipfix_flow_cfg_t* flow_cfg);
extern int32 ctc_ipfix_get_global_cfg(ctc_ipfix_global_cfg_t* ipfix_cfg);
extern int32 ctc_ipfix_get_hash_field_sel(ctc_ipfix_hash_field_sel_t* field_sel);
extern int32 ctc_ipfix_get_port_cfg(uint32 gport,ctc_ipfix_port_cfg_t* ipfix_cfg);
extern int32 ctc_ipfix_get_property(ctc_ipfix_property_t* p_ipfix_pro);
extern int32 ctc_ipfix_init(void* p_global_cfg);
extern int32 ctc_ipfix_register_cb(ctc_ipfix_fn_t callback,void* userdata);
extern int32 ctc_ipfix_set_flex_key_fields(ctc_ipfix_flex_key_t* ipfix_flex_key);
extern int32 ctc_ipfix_set_flow_cfg(ctc_ipfix_flow_cfg_t* flow_cfg);
extern int32 ctc_ipfix_set_global_cfg(ctc_ipfix_global_cfg_t* ipfix_cfg);
extern int32 ctc_ipfix_set_hash_field_sel(ctc_ipfix_hash_field_sel_t* field_sel);
extern int32 ctc_ipfix_set_port_cfg(uint32 gport,ctc_ipfix_port_cfg_t* ipfix_cfg);
extern int32 ctc_ipfix_set_property(ctc_ipfix_property_t* p_ipfix_pro);
extern int32 ctc_ipfix_traverse_remove(ctc_ipfix_traverse_remove_cmp fn, ctc_ipfix_traverse_t* p_data);
extern int32 ctc_ipfix_traverse(ctc_ipfix_traverse_fn fn, ctc_ipfix_traverse_t* p_data);
extern int32 ctc_ipmc_add_default_entry(uint8 ip_version, ctc_ipmc_default_action_t type);
extern int32 ctc_ipmc_add_group(ctc_ipmc_group_info_t* p_group);
extern int32 ctc_ipmc_add_member(ctc_ipmc_group_info_t* p_group);
extern int32 ctc_ipmc_add_rp_intf(ctc_ipmc_rp_t* p_rp);
extern int32 ctc_ipmc_deinit(void);
extern int32 ctc_ipmc_get_entry_hit(ctc_ipmc_group_info_t* p_group, uint8* hit);
extern int32 ctc_ipmc_get_group_info(ctc_ipmc_group_info_t* p_group);
extern int32 ctc_ipmc_get_mcast_force_route(ctc_ipmc_force_route_t* p_data);
extern int32 ctc_ipmc_init(void* ipmc_global_cfg);
extern int32 ctc_ipmc_remove_group(ctc_ipmc_group_info_t* p_group);
extern int32 ctc_ipmc_remove_member(ctc_ipmc_group_info_t* p_group);
extern int32 ctc_ipmc_remove_rp_intf(ctc_ipmc_rp_t* p_rp);
extern int32 ctc_ipmc_set_entry_hit(ctc_ipmc_group_info_t* p_group, uint8 hit);
extern int32 ctc_ipmc_set_mcast_force_route(ctc_ipmc_force_route_t* p_data);
extern int32 ctc_ipmc_traverse(uint8 ip_ver, ctc_ipmc_traverse_fn fn, void* user_data);
extern int32 ctc_ipmc_update_rpf(ctc_ipmc_group_info_t* p_group);
extern int32 ctc_ipuc_add_default_entry(uint8 ip_ver, uint32 nh_id);
extern int32 ctc_ipuc_add_nat_sa(ctc_ipuc_nat_sa_param_t* p_ipuc_nat_sa_param);
extern int32 ctc_ipuc_add_tunnel(ctc_ipuc_tunnel_param_t* p_ipuc_tunnel_param);
extern int32 ctc_ipuc_add(ctc_ipuc_param_t* p_ipuc_param);
extern int32 ctc_ipuc_arrange_fragment(void* p_arrange_info);
extern int32 ctc_ipuc_deinit(void);
extern int32 ctc_ipuc_get_entry_hit(ctc_ipuc_param_t* p_ipuc_param, uint8* hit);
extern int32 ctc_ipuc_get_natsa_entry_hit(ctc_ipuc_nat_sa_param_t* p_ipuc_nat_sa_param, uint8* hit);
extern int32 ctc_ipuc_get(ctc_ipuc_param_t* p_ipuc_param);
extern int32 ctc_ipuc_init(void* ipuc_global_cfg);
extern int32 ctc_ipuc_remove_nat_sa(ctc_ipuc_nat_sa_param_t* p_ipuc_nat_sa_param);
extern int32 ctc_ipuc_remove_tunnel(ctc_ipuc_tunnel_param_t* p_ipuc_tunnel_param);
extern int32 ctc_ipuc_remove(ctc_ipuc_param_t* p_ipuc_param);
extern int32 ctc_ipuc_set_entry_hit(ctc_ipuc_param_t* p_ipuc_param, uint8 hit);
extern int32 ctc_ipuc_set_global_property(ctc_ipuc_global_property_t* p_global_prop);
extern int32 ctc_ipuc_set_natsa_entry_hit(ctc_ipuc_nat_sa_param_t* p_ipuc_nat_sa_param, uint8 hit);
extern int32 ctc_ipuc_traverse(uint8 ip_ver, void* fn, void* data);
extern int32 ctc_l2_add_default_entry(ctc_l2dflt_addr_t* l2dflt_addr);
extern int32 ctc_l2_add_fdb(ctc_l2_addr_t* l2_addr);
extern int32 ctc_l2_add_fdb_with_nexthop(ctc_l2_addr_t* l2_addr, uint32 nhp_id);
extern int32 ctc_l2_add_port_to_default_entry(ctc_l2dflt_addr_t* l2dflt_addr);
extern int32 ctc_l2_fdb_deinit(void);
extern int32 ctc_l2_fdb_get_entry_hit(ctc_l2_addr_t* l2_addr, uint8* hit);
extern int32 ctc_l2_fdb_init(void* l2_fdb_global_cfg);
extern int32 ctc_l2_fdb_set_entry_hit(ctc_l2_addr_t* l2_addr, uint8 hit);
extern int32 ctc_l2_flush_fdb(ctc_l2_flush_fdb_t* pFlush);
extern int32 ctc_l2_get_default_entry_features(ctc_l2dflt_addr_t* l2dflt_addr);
extern int32 ctc_l2_get_fdb_by_index(uint32 index, ctc_l2_addr_t* l2_addr);
extern int32 ctc_l2_get_fdb_count(ctc_l2_fdb_query_t* pQuery);
extern int32 ctc_l2_get_fdb_entry(ctc_l2_fdb_query_t* pQuery, ctc_l2_fdb_query_rst_t* query_rst);
extern int32 ctc_l2_get_fid_property(uint16 fid_id, ctc_l2_fid_property_t property, uint32* value);
extern int32 ctc_l2_get_nhid_by_logic_port(uint16 logic_port, uint32* nhp_id);
extern int32 ctc_l2mcast_add_addr(ctc_l2_mcast_addr_t* l2mc_addr);
extern int32 ctc_l2mcast_add_member(ctc_l2_mcast_addr_t* l2mc_addr);
extern int32 ctc_l2mcast_remove_addr(ctc_l2_mcast_addr_t* l2mc_addr);
extern int32 ctc_l2mcast_remove_member(ctc_l2_mcast_addr_t* l2mc_addr);
extern int32 ctc_l2_remove_default_entry(ctc_l2dflt_addr_t* l2dflt_addr);
extern int32 ctc_l2_remove_fdb_by_index(uint32 index);
extern int32 ctc_l2_remove_fdb(ctc_l2_addr_t* l2_addr);
extern int32 ctc_l2_remove_port_from_default_entry(ctc_l2dflt_addr_t* l2dflt_addr);
extern int32 ctc_l2_replace_fdb(ctc_l2_replace_t* p_replace);
extern int32 ctc_l2_set_default_entry_features(ctc_l2dflt_addr_t* l2dflt_addr);
extern int32 ctc_l2_set_fid_property(uint16 fid_id, ctc_l2_fid_property_t property, uint32 value);
extern int32 ctc_l2_set_nhid_by_logic_port(uint16 logic_port, uint32 nhp_id);
extern int32 ctc_l3if_add_ecmp_if_member(uint16 ecmp_if_id, uint16 l3if_id);
extern int32 ctc_l3if_add_router_mac_entry(uint32 entry_id, ctc_l3if_rmac_entry_t* rmac_entry);
extern int32 ctc_l3if_add_vmac_low_8bit(uint16 l3if_id, ctc_l3if_vmac_t* p_l3if_vmac);
extern int32 ctc_l3if_create_ecmp_if(ctc_l3if_ecmp_if_t* p_ecmp_if);
extern int32 ctc_l3if_create(uint16 l3if_id, ctc_l3if_t* p_l3_if);
extern int32 ctc_l3if_deinit(void);
extern int32 ctc_l3if_destory_ecmp_if(uint16 ecmp_if_id);
extern int32 ctc_l3if_destory(uint16 l3if_id, ctc_l3if_t* p_l3_if);
extern int32 ctc_l3if_get_acl_property(uint16 l3if_id, ctc_acl_property_t* acl_prop);
extern int32 ctc_l3if_get_interface_router_mac(uint16 l3if_id, ctc_l3if_router_mac_t* router_mac);
extern int32 ctc_l3if_get_l3if_id(ctc_l3if_t* p_l3_if, uint16* l3if_id);
extern int32 ctc_l3if_get_property(uint16 l3if_id, ctc_l3if_property_t l3if_prop, uint32* p_value);
extern int32 ctc_l3if_get_router_mac_entry(uint32 entry_id, ctc_l3if_rmac_entry_t* rmac_entry);
extern int32 ctc_l3if_get_router_mac(mac_addr_t mac_addr);
extern int32 ctc_l3if_get_vmac_low_8bit(uint16 l3if_id, ctc_l3if_vmac_t* p_l3if_vmac);
extern int32 ctc_l3if_get_vmac_prefix(uint32 prefix_idx, mac_addr_t mac_40bit);
extern int32 ctc_l3if_init(void* l3if_global_cfg);
extern int32 ctc_l3if_remove_ecmp_if_member(uint16 ecmp_if_id, uint16 l3if_id);
extern int32 ctc_l3if_remove_router_mac_entry(uint32 entry_id);
extern int32 ctc_l3if_remove_vmac_low_8bit(uint16 l3if_id, ctc_l3if_vmac_t* p_l3if_vmac);
extern int32 ctc_l3if_set_acl_property(uint16 l3if_id, ctc_acl_property_t* acl_prop);
extern int32 ctc_l3if_set_interface_router_mac(uint16 l3if_id, ctc_l3if_router_mac_t router_mac);
extern int32 ctc_l3if_set_property_array(uint16 l3if_id, ctc_property_array_t* l3if_prop, uint16* array_num);
extern int32 ctc_l3if_set_property(uint16 l3if_id, ctc_l3if_property_t l3if_prop, uint32 value);
extern int32 ctc_l3if_set_router_mac(mac_addr_t mac_addr);
extern int32 ctc_l3if_set_vmac_prefix(uint32 prefix_idx, mac_addr_t mac_40bit);
extern int32 ctc_l3if_set_vrf_stats_en(ctc_l3if_vrf_stats_t* p_vrf_stats);
extern int32 ctc_aging_get_property(ctc_aging_table_type_t tbl_type, ctc_aging_prop_t aging_prop, uint32* value);
extern int32 ctc_aging_read_aging_fifo(ctc_aging_fifo_info_t* fifo_info);
extern int32 ctc_aging_set_property(ctc_aging_table_type_t tbl_type, ctc_aging_prop_t aging_prop, uint32 value);
extern int32 ctc_get_learning_action(ctc_learning_action_info_t* p_learning_action);
extern int32 ctc_learning_aging_deinit(void);
extern int32 ctc_learning_aging_init(void* global_cfg);
extern int32 ctc_learning_clear_learning_cache(uint16 entry_vld_bitmap);
extern int32 ctc_learning_get_cache_entry_valid_bitmap(uint16* entry_vld_bitmap);
extern int32 ctc_learning_read_learning_cache(uint16 entry_vld_bitmap, ctc_learning_cache_t* l2_lc);
extern int32 ctc_set_learning_action(ctc_learning_action_info_t* p_learning_action);
extern int32 ctc_linkagg_add_ports(uint16 tid, uint32 member_cnt, ctc_linkagg_port_t* p_ports);
extern int32 ctc_linkagg_add_port(uint16 tid, uint32 gport);
extern int32 ctc_linkagg_create(ctc_linkagg_group_t* p_linkagg_grp);
extern int32 ctc_linkagg_deinit(void);
extern int32 ctc_linkagg_destroy(uint16 tid);
extern int32 ctc_linkagg_get_1st_local_port(uint8 ldev, uint16 tid, uint32* p_gport, uint16* local_cnt);
extern int32 ctc_linkagg_get_lsh(uint16 tid, uint32 fail_port, ctc_linkagg_lsh_t* port_array);
extern int32 ctc_linkagg_get_max_mem_num(uint16* max_num);
extern int32 ctc_linkagg_get_member_ports(uint16 tid, uint32* p_gports, uint16* cnt);
extern int32 ctc_linkagg_get_nonuc_ports(uint16 tid, uint32* p_gports, uint16* p_cnt);
extern int32 ctc_linkagg_get_property(uint16 tid, ctc_linkagg_property_t linkagg_prop, uint32* p_value);
extern int32 ctc_linkagg_get_psc(ctc_linkagg_psc_t* psc);
extern int32 ctc_linkagg_init(void* linkagg_global_cfg);
extern int32 ctc_linkagg_remove_ports(uint16 tid, uint32 member_cnt, ctc_linkagg_port_t* p_ports);
extern int32 ctc_linkagg_remove_port(uint16 tid, uint32 gport);
extern int32 ctc_linkagg_replace_ports(uint16 tid, uint32* gport, uint16 mem_num);
extern int32 ctc_linkagg_set_lsh(uint16 tid, uint32 fail_port, ctc_linkagg_lsh_t* port_array);
extern int32 ctc_linkagg_set_nonuc_ports(uint16 tid, uint32* p_gports, uint16 cnt);
extern int32 ctc_linkagg_set_property(uint16 tid, ctc_linkagg_property_t linkagg_prop, uint32 value);
extern int32 ctc_linkagg_set_psc(ctc_linkagg_psc_t* psc);
extern int32 ctc_mirror_add_session(ctc_mirror_dest_t* mirror);
extern int32 ctc_mirror_deinit(void);
extern int32 ctc_mirror_get_mirror_discard(ctc_direction_t dir, ctc_mirror_discard_t discard_flag, bool* enable);
extern int32 ctc_mirror_get_port_info(uint32 gport, ctc_direction_t dir, bool* enable, uint8* session_id);
extern int32 ctc_mirror_get_vlan_info(uint16 vlan_id, ctc_direction_t dir, bool* enable, uint8* session_id);
extern int32 ctc_mirror_init(void* mirror_global_cfg);
extern int32 ctc_mirror_remove_session(ctc_mirror_dest_t* mirror);
extern int32 ctc_mirror_set_erspan_psc(ctc_mirror_erspan_psc_t* psc);
extern int32 ctc_mirror_set_escape_en(bool enable);
extern int32 ctc_mirror_set_escape_mac(ctc_mirror_rspan_escape_t* escape);
extern int32 ctc_mirror_set_mirror_discard(ctc_direction_t dir, uint16 discard_flag, bool enable);
extern int32 ctc_mirror_set_port_en(uint32 gport, ctc_direction_t dir, bool enable, uint8 session_id);
extern int32 ctc_mirror_set_vlan_en(uint16 vlan_id, ctc_direction_t dir, bool enable, uint8 session_id);
extern int32 ctc_monitor_clear_watermark(ctc_monitor_watermark_t* p_watermark);
extern int32 ctc_monitor_deinit(void);
extern int32 ctc_monitor_get_config2(ctc_monitor_config_type_t type, void* p_cfg);
extern int32 ctc_monitor_get_config(ctc_monitor_config_t* p_cfg);
extern int32 ctc_monitor_get_global_config(ctc_monitor_glb_cfg_t* p_cfg);
extern int32 ctc_monitor_get_watermark(ctc_monitor_watermark_t* p_watermark);
extern int32 ctc_monitor_init(void* p_global_cfg);
extern int32 ctc_monitor_register_cb(ctc_monitor_fn_t callback,void* userdata);
extern int32 ctc_monitor_set_config2(ctc_monitor_config_type_t type, void* p_cfg);
extern int32 ctc_monitor_set_config(ctc_monitor_config_t* p_cfg);
extern int32 ctc_monitor_set_global_config(ctc_monitor_glb_cfg_t* p_cfg);
extern int32 ctc_mpls_add_ilm(ctc_mpls_ilm_t* p_mpls_ilm);
extern int32 ctc_mpls_add_l2vpn_pw(ctc_mpls_l2vpn_pw_t* p_mpls_pw);
extern int32 ctc_mpls_add_stats(ctc_mpls_stats_index_t* stats_index);
extern int32 ctc_mpls_deinit(void);
extern int32 ctc_mpls_del_ilm(ctc_mpls_ilm_t* p_mpls_ilm);
extern int32 ctc_mpls_del_l2vpn_pw(ctc_mpls_l2vpn_pw_t* p_mpls_pw);
extern int32 ctc_mpls_get_ilm_property(ctc_mpls_property_t* p_mpls_pro);
extern int32 ctc_mpls_get_ilm(uint32* nh_id, ctc_mpls_ilm_t* p_mpls_ilm);
extern int32 ctc_mpls_init(ctc_mpls_init_t* p_mpls_info);
extern int32 ctc_mpls_remove_stats(ctc_mpls_stats_index_t* stats_index);
extern int32 ctc_mpls_set_ilm_property(ctc_mpls_property_t* p_mpls_pro);
extern int32 ctc_mpls_update_ilm(ctc_mpls_ilm_t* p_mpls_ilm);
extern int32 ctc_nexthop_deinit(void);
extern int32 ctc_nexthop_init(ctc_nh_global_cfg_t* nh_cfg);
extern int32 ctc_nh_add_aps(uint32 id, ctc_nh_aps_param_t* p_nh_param);
extern int32 ctc_nh_add_ecmp(uint32 nhid, ctc_nh_ecmp_nh_param_t* p_nh_param);
extern int32 ctc_nh_add_fp(ctc_nh_fp_edit_t* p_edit);
extern int32 ctc_nh_add_iloop(uint32 nhid, ctc_loopback_nexthop_param_t* p_nh_param);
extern int32 ctc_nh_add_ip_tunnel(uint32 nhid, ctc_ip_tunnel_nh_param_t* p_nh_param);
extern int32 ctc_nh_add_ipuc(uint32 nhid, ctc_ip_nh_param_t* p_nh_param);
extern int32 ctc_nh_add_l2uc(uint32 gport, ctc_nh_param_brguc_sub_type_t nh_type);
extern int32 ctc_nh_add_mcast(uint32 nhid, ctc_mcast_nh_param_group_t* p_nh_mcast_group);
extern int32 ctc_nh_add_misc(uint32 nhid, ctc_misc_nh_param_t* p_nh_param);
extern int32 ctc_nh_add_mpls_tunnel_label(uint16 tunnel_id, ctc_mpls_nexthop_tunnel_param_t* p_nh_param);
extern int32 ctc_nh_add_mpls(uint32 nhid, ctc_mpls_nexthop_param_t* p_nh_param);
extern int32 ctc_nh_add_nexthop_mac(uint32 arp_id, ctc_nh_nexthop_mac_param_t* p_param);
extern int32 ctc_nh_add_nsh_edit(uint16 nsh_id, ctc_nh_nsh_param_t* nsh_info);
extern int32 ctc_nh_add_overlay_tunnel(uint32 ldp, ctc_nh_ol_tunnel_t* p_ol_tunnel);
extern int32 ctc_nh_add_overlay(uint32 nhid, ctc_nh_overlay_param_t* p_nh_param);
extern int32 ctc_nh_add_overlay_vni(uint32* ol_vni, ctc_nh_ol_vni_t* p_ol_vni);
extern int32 ctc_nh_add_rspan(uint32 nhid, ctc_rspan_nexthop_param_t* p_nh_param);
extern int32 ctc_nh_add_srh_edit(uint32* srh_id, ctc_nh_srh_edit_param_t* p_nh_param);
extern int32 ctc_nh_add_srv6(uint32 nhid, ctc_nh_srv6_param_t* p_nh_param);
extern int32 ctc_nh_add_trill(uint32 nhid, ctc_nh_trill_param_t* p_nh_param);
extern int32 ctc_nh_add_udf_profile(ctc_nh_udf_profile_param_t* p_edit);
extern int32 ctc_nh_add_wlan_tunnel(uint32 nhid, ctc_nh_wlan_tunnel_param_t* p_nh_param);
extern int32 ctc_nh_add_xlate(uint32 nhid, ctc_vlan_edit_nh_param_t* p_nh_param);
extern int32 ctc_nh_get_l2uc(uint32 gport, ctc_nh_param_brguc_sub_type_t nh_type, uint32* nhid);
extern int32 ctc_nh_get_max_ecmp(uint16* max_ecmp);
extern int32 ctc_nh_get_mcast_nh(uint32 group_id, uint32* p_nhid);
extern int32 ctc_nh_get_mpls_tunnel_label(uint16 tunnel_id, ctc_mpls_nexthop_tunnel_param_t* p_param);
extern int32 ctc_nh_get_nh_info(uint32 nhid, ctc_nh_info_t* p_nh_info);
extern int32 ctc_nh_get_overlay_tunnel(uint32 ldp, ctc_nh_ol_tunnel_t* p_ol_tunnel);
extern int32 ctc_nh_get_resolved_dsnh_offset(ctc_nh_reserved_dsnh_offset_type_t type, uint32* p_offset);
extern int32 ctc_nh_remove_aps(uint32 id, uint8 type);
extern int32 ctc_nh_remove_ecmp(uint32 nhid);
extern int32 ctc_nh_remove_fp(uint32 fp_id);
extern int32 ctc_nh_remove_iloop(uint32 nhid);
extern int32 ctc_nh_remove_ip_tunnel(uint32 nhid);
extern int32 ctc_nh_remove_ipuc(uint32 nhid);
extern int32 ctc_nh_remove_l2uc(uint32 gport);
extern int32 ctc_nh_remove_mcast(uint32 nhid);
extern int32 ctc_nh_remove_misc(uint32 nhid);
extern int32 ctc_nh_remove_mpls_tunnel_label(uint16 tunnel_id);
extern int32 ctc_nh_remove_mpls(uint32 nhid);
extern int32 ctc_nh_remove_nexthop_mac(uint32 arp_id);
extern int32 ctc_nh_remove_nsh_edit(uint16 nsh_id);
extern int32 ctc_nh_remove_overlay_tunnel(uint32 ldp);
extern int32 ctc_nh_remove_overlay(uint32 nhid);
extern int32 ctc_nh_remove_overlay_vni(uint32 ol_vni);
extern int32 ctc_nh_remove_rspan(uint32 nhid);
extern int32 ctc_nh_remove_srh_edit(uint32 srh_id);
extern int32 ctc_nh_remove_srv6(uint32 nhid);
extern int32 ctc_nh_remove_trill(uint32 nhid);
extern int32 ctc_nh_remove_udf_profile(uint8 profile_id);
extern int32 ctc_nh_remove_wlan_tunnel(uint32 nhid);
extern int32 ctc_nh_remove_xlate(uint32 nhid);
extern int32 ctc_nh_replace_mcast_members(uint32 nhid, ctc_mcast_nh_param_member_t* mem_array, uint32 mem_num);
extern int32 ctc_nh_set_global_config(ctc_nh_global_cfg_t* p_glb_cfg);
extern int32 ctc_nh_set_max_ecmp(uint16 max_ecmp);
extern int32 ctc_nh_set_nh_drop(uint32 nhid, ctc_nh_drop_info_t* p_nh_drop);
extern int32 ctc_nh_swap_mpls_tunnel_label(uint16 old_tunnel_id,uint16 new_tunnel_id);
extern int32 ctc_nh_traverse_mcast(ctc_nh_mcast_traverse_fn fn, ctc_nh_mcast_traverse_t* p_data);
extern int32 ctc_nh_update_aps(uint32 id, ctc_nh_aps_param_t* p_nh_param);
extern int32 ctc_nh_update_ecmp(uint32 nhid, ctc_nh_ecmp_nh_param_t* p_nh_param);
extern int32 ctc_nh_update_fp(ctc_nh_fp_edit_t* p_edit);
extern int32 ctc_nh_update_ip_tunnel(uint32 nhid, ctc_ip_tunnel_nh_param_t* p_nh_param);
extern int32 ctc_nh_update_ipuc(uint32 nhid, ctc_ip_nh_param_t* p_nh_param);
extern int32 ctc_nh_update_mcast(uint32 nhid, ctc_mcast_nh_param_group_t* p_nh_mcast_group);
extern int32 ctc_nh_update_misc(uint32 nhid, ctc_misc_nh_param_t* p_nh_param);
extern int32 ctc_nh_update_mpls_tunnel_label(uint16 tunnel_id, ctc_mpls_nexthop_tunnel_param_t* p_new_param);
extern int32 ctc_nh_update_mpls(uint32 nhid, ctc_mpls_nexthop_param_t* p_nh_param);
extern int32 ctc_nh_update_nexthop_mac(uint32 arp_id, ctc_nh_nexthop_mac_param_t* p_new_param);
extern int32 ctc_nh_update_nsh_edit(uint16 nsh_id, ctc_nh_nsh_param_t* nsh_info);
extern int32 ctc_nh_update_overlay_tunnel(uint32 ldp, ctc_nh_ol_tunnel_t* p_ol_tunnel);
extern int32 ctc_nh_update_overlay(uint32 nhid, ctc_nh_overlay_param_t* p_nh_param);
extern int32 ctc_nh_update_overlay_vni(uint32 ol_vni, ctc_nh_ol_vni_t* p_ol_vni);
extern int32 ctc_nh_update_srh_edit(uint32 srh_id, ctc_nh_srh_edit_param_t* p_nh_param);
extern int32 ctc_nh_update_srv6(uint32 nhid, ctc_nh_srv6_param_t* p_nh_param);
extern int32 ctc_nh_update_trill(uint32 nhid, ctc_nh_trill_param_t* p_nh_param);
extern int32 ctc_nh_update_wlan_tunnel(uint32 nhid, ctc_nh_wlan_tunnel_param_t* p_nh_param);
extern int32 ctc_nh_update_xlate(uint32 nhid, ctc_vlan_edit_nh_param_t* p_nh_param);
extern int32 ctc_npm_clear_stats(uint8 ldev, uint32 session_id);
extern int32 ctc_npm_create_im_flow(ctc_npm_im_flow_t* p_npm_im_flow);
extern int32 ctc_npm_deinit(void);
extern int32 ctc_npm_destory_im_flow(uint32 flow_id);
extern int32 ctc_npm_get_global_config(uint8 ldev, ctc_npm_global_cfg_t* p_npm);
extern int32 ctc_npm_get_im_flow_property(ctc_npm_im_flow_property_t* p_npm_im_pro);
extern int32 ctc_npm_get_stats(uint8 ldev, uint32 session_id, ctc_npm_stats_t* p_stats);
extern int32 ctc_npm_init(void* npm_global_cfg);
extern int32 ctc_npm_set_config(uint8 ldev, ctc_npm_cfg_t* p_cfg);
extern int32 ctc_npm_set_global_config(uint8 ldev, ctc_npm_global_cfg_t* p_npm);
extern int32 ctc_npm_set_im_flow_property(ctc_npm_im_flow_property_t* p_npm_im_pro);
extern int32 ctc_npm_set_transmit_en(uint8 ldev, uint32 session_id, uint8 enable);
extern int32 ctc_oam_add_lmep(ctc_oam_lmep_t* p_lmep);
extern int32 ctc_oam_add_maid(ctc_oam_maid_t* p_maid);
extern int32 ctc_oam_add_mip(ctc_oam_mip_t* p_mip);
extern int32 ctc_oam_add_rmep(ctc_oam_rmep_t* p_rmep);
extern int32 ctc_oam_clear_trpt_stats(uint8 gchip, uint8 session_id);
extern int32 ctc_oam_deinit(void);
extern int32 ctc_oam_get_defect_info(uint8 ldev, void* p_defect_info);
extern int32 ctc_oam_get_mep_info(uint8 ldev, ctc_oam_mep_info_t* p_mep_info);
extern int32 ctc_oam_get_mep_info_with_key(ctc_oam_mep_info_with_key_t* p_mep_info);
extern int32 ctc_oam_get_stats(ctc_oam_stats_info_t* p_stat_info);
extern int32 ctc_oam_get_trpt_stats(uint8 gchip, uint8 session_id, ctc_oam_trpt_stats_t* p_trpt_stats);
extern int32 ctc_oam_init(ctc_oam_global_t* p_cfg);
extern int32 ctc_oam_remove_lmep(ctc_oam_lmep_t* p_lmep);
extern int32 ctc_oam_remove_maid(ctc_oam_maid_t* p_maid);
extern int32 ctc_oam_remove_mip(ctc_oam_mip_t* p_mip);
extern int32 ctc_oam_remove_rmep(ctc_oam_rmep_t* p_rmep);
extern int32 ctc_oam_set_property(ctc_oam_property_t* p_prop);
extern int32 ctc_oam_set_trpt_cfg(ctc_oam_trpt_t* p_throughput);
extern int32 ctc_oam_set_trpt_en(uint8 gchip, uint8 session_id, uint8 enable);
extern int32 ctc_oam_update_lmep(ctc_oam_update_t* p_lmep);
extern int32 ctc_oam_update_rmep(ctc_oam_update_t* p_rmep);
extern int32 ctc_overlay_tunnel_add_tunnel(ctc_overlay_tunnel_param_t* p_tunnel_param);
extern int32 ctc_overlay_tunnel_deinit(void);
extern int32 ctc_overlay_tunnel_get_fid(uint32 vn_id, uint16* p_fid);
extern int32 ctc_overlay_tunnel_get_vn_id(uint16 fid, uint32* p_vn_id);
extern int32 ctc_overlay_tunnel_init(void* param);
extern int32 ctc_overlay_tunnel_remove_tunnel(ctc_overlay_tunnel_param_t* p_tunnel_param);
extern int32 ctc_overlay_tunnel_set_fid(uint32 vn_id, uint16 fid);
extern int32 ctc_overlay_tunnel_update_tunnel(ctc_overlay_tunnel_param_t* p_tunnel_param);
extern int32 ctc_packet_create_netif(uint8 ldev, ctc_pkt_netif_t* p_netif);
extern int32 ctc_packet_decap(ctc_pkt_rx_t* p_pkt_rx);
extern int32 ctc_packet_deinit(void);
extern int32 ctc_packet_destory_netif(uint8 ldev, ctc_pkt_netif_t* p_netif);
extern int32 ctc_packet_encap(ctc_pkt_tx_t* p_pkt_tx);
extern int32 ctc_packet_get_netif(uint8 ldev, ctc_pkt_netif_t* p_netif);
extern int32 ctc_packet_init(void* p_global_cfg);
extern int32 ctc_packet_rx_register(ctc_pkt_rx_register_t* p_register);
extern int32 ctc_packet_rx_unregister(ctc_pkt_rx_register_t* p_register);
extern int32 ctc_packet_set_tx_timer(uint8 ldev, ctc_pkt_tx_timer_t* p_pkt_timer);
extern int32 ctc_packet_tx_alloc2(ctc_pkt_buf_pool_t* p_pool);
extern int32 ctc_packet_tx_alloc(uint32 size, void** p_addr);
extern int32 ctc_packet_tx_array(ctc_pkt_tx_t** p_pkt_array, uint32 count, ctc_pkt_callback all_done_cb, void* cookie);
extern int32 ctc_packet_tx_free2(ctc_pkt_buf_pool_t* p_pool);
extern int32 ctc_packet_tx_free(void* addr);
extern int32 ctc_packet_tx(ctc_pkt_tx_t* p_pkt_tx);
extern int32 ctc_parser_deinit(void);
extern int32 ctc_parser_enable_l3_type(ctc_parser_l3_type_t l3_type, bool enable);
extern int32 ctc_parser_get_ecmp_hash_field(ctc_parser_ecmp_hash_ctl_t* hash_ctl);
extern int32 ctc_parser_get_efd_hash_field(ctc_parser_efd_hash_ctl_t* hash_ctl);
extern int32 ctc_parser_get_global_cfg(ctc_parser_global_cfg_t* global_cfg);
extern int32 ctc_parser_get_l2_flex_header(ctc_parser_l2flex_header_t* l2flex_header);
extern int32 ctc_parser_get_l3_flex_header(ctc_parser_l3flex_header_t* l3flex_header);
extern int32 ctc_parser_get_l4_app_ctl(ctc_parser_l4app_ctl_t* l4app_ctl);
extern int32 ctc_parser_get_l4_app_data_ctl(uint8 index, ctc_parser_l4_app_data_entry_t* entry);
extern int32 ctc_parser_get_l4_flex_header(ctc_parser_l4flex_header_t* l4flex_header);
extern int32 ctc_parser_get_lb_hash_field(ctc_lb_hash_fields_t* hash_fields);
extern int32 ctc_parser_get_lb_hash_offset(ctc_lb_hash_offset_t* hash_offset);
extern int32 ctc_parser_get_lb_hash_poly(ctc_lb_hash_poly_t* hash_poly);
extern int32 ctc_parser_get_lb_hash_sel_ext(ctc_lb_hash_selector_ext_t* sel_grp_ext);
extern int32 ctc_parser_get_lb_hash_sel_mapping(ctc_lb_hash_selector_remap_t* sel_grp_map);
extern int32 ctc_parser_get_max_length_filed(uint16* max_length);
extern int32 ctc_parser_get_pbb_header(ctc_parser_pbb_header_t* pbb_header);
extern int32 ctc_parser_get_tpid(ctc_parser_l2_tpid_t type, uint16* tpid);
extern int32 ctc_parser_get_trill_header(ctc_parser_trill_header_t* trill_header);
extern int32 ctc_parser_get_udf(uint32 index, ctc_parser_udf_t* udf);
extern int32 ctc_parser_get_vlan_parser_num(uint8* vlan_num);
extern int32 ctc_parser_init(void* parser_global_cfg);
extern int32 ctc_parser_map_l3_type(uint8 index, ctc_parser_l2_protocol_entry_t* entry);
extern int32 ctc_parser_map_l4_type(uint8 index, ctc_parser_l3_protocol_entry_t* entry);
extern int32 ctc_parser_set_ecmp_hash_field(ctc_parser_ecmp_hash_ctl_t* hash_ctl);
extern int32 ctc_parser_set_efd_hash_field(ctc_parser_efd_hash_ctl_t* hash_ctl);
extern int32 ctc_parser_set_global_cfg(ctc_parser_global_cfg_t* global_cfg);
extern int32 ctc_parser_set_l2_flex_header(ctc_parser_l2flex_header_t* l2flex_header);
extern int32 ctc_parser_set_l3_flex_header(ctc_parser_l3flex_header_t* l3flex_header);
extern int32 ctc_parser_set_l4_app_ctl(ctc_parser_l4app_ctl_t* l4app_ctl);
extern int32 ctc_parser_set_l4_app_data_ctl(uint8 index, ctc_parser_l4_app_data_entry_t* entry);
extern int32 ctc_parser_set_l4_flex_header(ctc_parser_l4flex_header_t* l4flex_header);
extern int32 ctc_parser_set_lb_hash_field(ctc_lb_hash_fields_t* hash_fields);
extern int32 ctc_parser_set_lb_hash_offset(ctc_lb_hash_offset_t* hash_offset);
extern int32 ctc_parser_set_lb_hash_poly(ctc_lb_hash_poly_t* hash_poly);
extern int32 ctc_parser_set_lb_hash_sel_ext(ctc_lb_hash_selector_ext_t* sel_grp_ext);
extern int32 ctc_parser_set_lb_hash_sel_mapping(ctc_lb_hash_selector_remap_t* sel_grp_map);
extern int32 ctc_parser_set_max_length_field(uint16 max_length);
extern int32 ctc_parser_set_pbb_header(ctc_parser_pbb_header_t* pbb_header);
extern int32 ctc_parser_set_tpid(ctc_parser_l2_tpid_t type, uint16 tpid);
extern int32 ctc_parser_set_trill_header(ctc_parser_trill_header_t* trill_header);
extern int32 ctc_parser_set_udf(uint32 index, ctc_parser_udf_t* udf);
extern int32 ctc_parser_set_vlan_parser_num(uint8 vlan_num);
extern int32 ctc_parser_unmap_l3_type(uint8 index);
extern int32 ctc_parser_unmap_l4_type(uint8 index);
extern int32 ctc_l2pdu_classify_l2pdu(ctc_pdu_l2pdu_type_t l2pdu_type, uint8 index, ctc_pdu_l2pdu_key_t* key);
extern int32 ctc_l2pdu_get_classified_key(ctc_pdu_l2pdu_type_t l2pdu_type, uint8 index, ctc_pdu_l2pdu_key_t* key);
extern int32 ctc_l2pdu_get_global_action(ctc_pdu_l2pdu_type_t l2pdu_type, uint8 index, ctc_pdu_global_l2pdu_action_t* action);
extern int32 ctc_l2pdu_get_port_action(uint32 gport, uint8 action_index, ctc_pdu_port_l2pdu_action_t* action);
extern int32 ctc_l2pdu_set_global_action(ctc_pdu_l2pdu_type_t l2pdu_type, uint8 index, ctc_pdu_global_l2pdu_action_t* action);
extern int32 ctc_l2pdu_set_port_action(uint32 gport, uint8 action_index, ctc_pdu_port_l2pdu_action_t action);
extern int32 ctc_l3pdu_classify_l3pdu(ctc_pdu_l3pdu_type_t l3pdu_type, uint8 index, ctc_pdu_l3pdu_key_t* key);
extern int32 ctc_l3pdu_get_classified_key(ctc_pdu_l3pdu_type_t l3pdu_type, uint8 index, ctc_pdu_l3pdu_key_t* key);
extern int32 ctc_l3pdu_get_global_action(ctc_pdu_l3pdu_type_t l3pdu_type, uint8 index, ctc_pdu_global_l3pdu_action_t* action);
extern int32 ctc_l3pdu_get_l3if_action(uint16 l3ifid, uint8 action_index, ctc_pdu_l3if_l3pdu_action_t* action);
extern int32 ctc_l3pdu_set_global_action(ctc_pdu_l3pdu_type_t l3pdu_type, uint8 index, ctc_pdu_global_l3pdu_action_t* action);
extern int32 ctc_l3pdu_set_l3if_action(uint16 l3ifid, uint8 action_index, ctc_pdu_l3if_l3pdu_action_t action);
extern int32 ctc_pdu_deinit(void);
extern int32 ctc_pdu_init(void* pdu_global_cfg);
extern int32 ctc_pon_create_gem_port(ctc_pon_gem_port_t* p_gem_port);
extern int32 ctc_pon_create_vlan_port(ctc_pon_vlan_port_t* p_vlan_port);
extern int32 ctc_pon_deinit(void* p_init_cfg);
extern int32 ctc_pon_destroy_gem_port(ctc_pon_gem_port_t* p_gem_port);
extern int32 ctc_pon_destroy_vlan_port(ctc_pon_vlan_port_t* p_vlan_port);
extern int32 ctc_pon_get_gem_port(ctc_pon_gem_port_t* p_gem_port);
extern int32 ctc_pon_get_port_propery(uint32 gport, ctc_pon_port_cfg_t* cfg);
extern int32 ctc_pon_get_vlan_port(ctc_pon_vlan_port_t* p_vlan_port);
extern int32 ctc_pon_init(void* p_init_cfg);
extern int32 ctc_pon_set_port_propery(uint32 gport, ctc_pon_port_cfg_t* cfg);
extern int32 ctc_pon_update_gem_port(ctc_pon_gem_port_t* p_gem_port);
extern int32 ctc_pon_update_vlan_port(ctc_pon_vlan_port_t* p_vlan_port);
extern int32 ctc_get_ipg_size(ctc_ipg_size_t index, uint8* p_size);
extern int32 ctc_get_max_frame_size(ctc_frame_size_t index, uint16* p_value);
extern int32 ctc_get_min_frame_size(ctc_frame_size_t index, uint16* p_value);
extern int32 ctc_port_deinit(void);
extern int32 ctc_port_get_acl_property(uint32 gport, ctc_acl_property_t* p_prop);
extern int32 ctc_port_get_bpe_property(uint32 gport, ctc_port_bpe_property_t* p_prop);
extern int32 ctc_port_get_bridge_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_capability(uint32 gport, ctc_port_capability_type_t type, void* p_value);
extern int32 ctc_port_get_cpu_mac_en(bool* p_enable);
extern int32 ctc_port_get_cross_connect(uint32 gport, uint32* p_value);
extern int32 ctc_port_get_default_vlan(uint32 gport, uint16* p_vid);
extern int32 ctc_port_get_direction_property(uint32 gport, ctc_port_direction_property_t port_prop, ctc_direction_t dir, uint32* p_value);
extern int32 ctc_port_get_dot1q_type(uint32 gport, ctc_dot1q_type_t* p_type);
extern int32 ctc_port_get_flow_ctl_en(ctc_port_fc_prop_t* p_fc_prop);
extern int32 ctc_port_get_interface_mode(uint32 gport, ctc_port_if_mode_t* if_mode);
extern int32 ctc_port_get_ipg(uint32 gport, ctc_ipg_size_t* p_index);
extern int32 ctc_port_get_isolation(uint8 ldev, ctc_port_isolation_t* p_port_isolation);
extern int32 ctc_port_get_learning_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_logic_port_property(uint32 logic_port, ctc_logic_port_property_t logic_port_prop, ctc_direction_t dir, void* p_value);
extern int32 ctc_port_get_mac_auth(uint32 gport, bool* enable);
extern int32 ctc_port_get_mac_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_mac_link_up(uint32 gport, bool* p_is_up);
extern int32 ctc_port_get_max_frame(uint32 gport, uint32* p_value);
extern int32 ctc_port_get_min_frame_size(uint32 gport, uint8* p_size);
extern int32 ctc_port_get_pading_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_phy_if_en(uint32 gport, uint16* p_l3if_id, bool* p_enable);
extern int32 ctc_port_get_phy_property(uint32 gport, ctc_port_property_t port_prop, void* p_value);
extern int32 ctc_port_get_port_check_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_port_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_port_mac(uint32 gport, mac_addr_t* p_port_mac);
extern int32 ctc_port_get_ppbmp(uint32* gport_array, uint16 count, uint16* ppbmp);
extern int32 ctc_port_get_preamble(uint32 gport, uint8* p_pre_bytes);
extern int32 ctc_port_get_property(uint32 gport, ctc_port_property_t port_prop, uint32* p_value);
extern int32 ctc_port_get_protocol_vlan_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_random_log_en(uint32 gport, ctc_direction_t dir, bool* p_enable);
extern int32 ctc_port_get_random_log_percent(uint32 gport, ctc_direction_t dir, uint8* p_percent);
extern int32 ctc_port_get_receive_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_reflective_bridge_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_restriction(uint32 gport, ctc_port_restriction_t* p_restriction);
extern int32 ctc_port_get_scl_key_type(uint32 gport, ctc_direction_t dir, uint8 scl_id, ctc_port_scl_key_type_t* p_type);
extern int32 ctc_port_get_scl_property(uint32 gport, ctc_port_scl_property_t* prop);
extern int32 ctc_port_get_speed(uint32 gport, ctc_port_speed_t* p_speed_mode);
extern int32 ctc_port_get_srcdiscard_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_stag_tpid_index(uint32 gport, ctc_direction_t dir, uint8* p_index);
extern int32 ctc_port_get_sub_if_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_transmit_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_untag_dft_vid(uint32 gport, bool* p_enable, bool* p_untag_svlan);
extern int32 ctc_port_get_use_outer_ttl(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_vlan_ctl(uint32 gport, ctc_vlantag_ctl_t* p_mode);
extern int32 ctc_port_get_vlan_domain(uint32 gport, ctc_port_vlan_domain_type_t* p_vlan_domain);
extern int32 ctc_port_get_vlan_filter_en(uint32 gport, ctc_direction_t dir, bool* p_enable);
extern int32 ctc_port_get_vlan_range(uint32 gport, ctc_vlan_range_info_t* p_vrange_info, bool* p_enable);
extern int32 ctc_port_init(void* p_port_global_cfg);
extern int32 ctc_port_set_acl_property(uint32 gport, ctc_acl_property_t* p_prop);
extern int32 ctc_port_set_auto_neg(uint32 gport, uint32 value);
extern int32 ctc_port_set_bpe_property(uint32 gport, ctc_port_bpe_property_t* p_prop);
extern int32 ctc_port_set_bridge_en(uint32 gport, bool enable);
extern int32 ctc_port_set_capability(uint32 gport, ctc_port_capability_type_t type, uint32 value);
extern int32 ctc_port_set_cpu_mac_en(bool enable);
extern int32 ctc_port_set_cross_connect(uint32 gport, uint32 nhid);
extern int32 ctc_port_set_default_cfg(uint32 gport);
extern int32 ctc_port_set_default_vlan(uint32 gport, uint16 vid);
extern int32 ctc_port_set_direction_property(uint32 gport, ctc_port_direction_property_t port_prop, ctc_direction_t dir, uint32 value);
extern int32 ctc_port_set_dot1q_type(uint32 gport, ctc_dot1q_type_t type);
extern int32 ctc_port_set_flow_ctl_en(ctc_port_fc_prop_t* p_fc_prop);
extern int32 ctc_port_set_interface_mode(uint32 gport, ctc_port_if_mode_t* if_mode);
extern int32 ctc_port_set_ipg(uint32 gport, ctc_ipg_size_t index);
extern int32 ctc_port_set_isolation(uint8 ldev, ctc_port_isolation_t* p_port_isolation);
extern int32 ctc_port_set_learning_en(uint32 gport, bool enable);
extern int32 ctc_port_set_link_intr(uint32 gport, uint32 value);
extern int32 ctc_port_set_logic_port_property(uint32 logic_port, ctc_logic_port_property_t logic_port_prop, ctc_direction_t dir, void* p_value);
extern int32 ctc_port_set_loopback(ctc_port_lbk_param_t* p_port_lbk);
extern int32 ctc_port_set_mac_auth(uint32 gport, bool enable);
extern int32 ctc_port_set_mac_en(uint32 gport, bool enable);
extern int32 ctc_port_set_max_frame(uint32 gport, uint32 value);
extern int32 ctc_port_set_min_frame_size(uint32 gport, uint8 size);
extern int32 ctc_port_set_pading_en(uint32 gport, bool enable);
extern int32 ctc_port_set_phy_if_en(uint32 gport, bool enable);
extern int32 ctc_port_set_phy_property(uint32 gport, ctc_port_property_t port_prop, void* p_value);
extern int32 ctc_port_set_port_check_en(uint32 gport, bool enable);
extern int32 ctc_port_set_port_en(uint32 gport, bool enable);
extern int32 ctc_port_set_port_mac_postfix(uint32 gport, ctc_port_mac_postfix_t* p_port_mac);
extern int32 ctc_port_set_port_mac_prefix(ctc_port_mac_prefix_t* p_port_mac);
extern int32 ctc_port_set_preamble(uint32 gport, uint8 pre_bytes);
extern int32 ctc_port_set_property_array(uint32 gport, ctc_property_array_t* port_prop, uint16* array_num);
extern int32 ctc_port_set_property_ext(uint32 gport, ctc_port_property_t port_prop, void* p_value);
extern int32 ctc_port_set_property(uint32 gport, ctc_port_property_t port_prop, uint32 value);
extern int32 ctc_port_set_protocol_vlan_en(uint32 gport, bool enable);
extern int32 ctc_port_set_random_log_en(uint32 gport, ctc_direction_t dir, bool enable);
extern int32 ctc_port_set_random_log_percent(uint32 gport, ctc_direction_t dir, uint8 percent);
extern int32 ctc_port_set_receive_en(uint32 gport, bool enable);
extern int32 ctc_port_set_reflective_bridge_en(uint32 gport, bool enable);
extern int32 ctc_port_set_restriction(uint32 gport, ctc_port_restriction_t* p_restriction);
extern int32 ctc_port_set_scl_key_type(uint32 gport, ctc_direction_t dir, uint8 scl_id, ctc_port_scl_key_type_t type);
extern int32 ctc_port_set_scl_property(uint32 gport, ctc_port_scl_property_t* prop);
extern int32 ctc_port_set_speed(uint32 gport, ctc_port_speed_t speed_mode);
extern int32 ctc_port_set_srcdiscard_en(uint32 gport, bool enable);
extern int32 ctc_port_set_stag_tpid_index(uint32 gport, ctc_direction_t dir, uint8 index);
extern int32 ctc_port_set_sub_if_en(uint32 gport, bool enable);
extern int32 ctc_port_set_transmit_en(uint32 gport, bool enable);
extern int32 ctc_port_set_untag_dft_vid(uint32 gport, bool enable, bool untag_svlan);
extern int32 ctc_port_set_use_outer_ttl(uint32 gport, bool enable);
extern int32 ctc_port_set_vlan_ctl(uint32 gport, ctc_vlantag_ctl_t mode);
extern int32 ctc_port_set_vlan_domain(uint32 gport, ctc_port_vlan_domain_type_t vlan_domain);
extern int32 ctc_port_set_vlan_filter_en(uint32 gport, ctc_direction_t dir, bool enable);
extern int32 ctc_port_set_vlan_range(uint32 gport, ctc_vlan_range_info_t* p_vrange_info, bool enable);
extern int32 ctc_set_ipg_size(ctc_ipg_size_t index, uint8 size);
extern int32 ctc_set_max_frame_size(ctc_frame_size_t index, uint16 value);
extern int32 ctc_set_min_frame_size(ctc_frame_size_t index, uint16 value);
extern int32 ctc_ptp_add_device_clock(ctc_ptp_clock_t* clock);
extern int32 ctc_ptp_add_session(ctc_ptp_session_t* ptp_session);
extern int32 ctc_ptp_adjust_clock_offset(uint8 ldev, ctc_ptp_time_t* p_offset);
extern int32 ctc_ptp_clear_sync_intf_code(void);
extern int32 ctc_ptp_clear_tod_intf_code(void);
extern int32 ctc_ptp_deinit(void);
extern int32 ctc_ptp_get_adjust_delay(uint32 gport, ctc_ptp_adjust_delay_type_t type, int64* value);
extern int32 ctc_ptp_get_captured_ts(uint8 ldev, ctc_ptp_capured_ts_t* p_captured_ts);
extern int32 ctc_ptp_get_clock_drift(uint8 ldev, ctc_ptp_time_t* p_drift);
extern int32 ctc_ptp_get_clock_timestamp(uint8 ldev, ctc_ptp_time_t* p_timestamp);
extern int32 ctc_ptp_get_device_type(ctc_ptp_device_type_t* p_device_type);
extern int32 ctc_ptp_get_global_property(ctc_ptp_global_prop_t property, uint32* value);
extern int32 ctc_ptp_get_session(ctc_ptp_session_t* ptp_session);
extern int32 ctc_ptp_get_sync_intf_code(uint8 ldev, ctc_ptp_sync_intf_code_t* p_time_code);
extern int32 ctc_ptp_get_sync_intf_toggle_time(uint8 ldev, ctc_ptp_time_t* p_toggle_time);
extern int32 ctc_ptp_get_sync_intf(uint8 ldev, ctc_ptp_sync_intf_cfg_t* p_sync_cfg);
extern int32 ctc_ptp_get_tod_intf_rx_code(uint8 ldev, ctc_ptp_tod_intf_code_t* p_rx_code);
extern int32 ctc_ptp_get_tod_intf_tx_code(uint8 ldev, ctc_ptp_tod_intf_code_t* p_tx_code);
extern int32 ctc_ptp_get_tod_intf(uint8 ldev, ctc_ptp_tod_intf_cfg_t* p_tod_cfg);
extern int32 ctc_ptp_init(ctc_ptp_global_config_t* p_ptp_cfg);
extern int32 ctc_ptp_remove_device_clock(ctc_ptp_clock_t* clock);
extern int32 ctc_ptp_remove_session(ctc_ptp_session_t* ptp_session);
extern int32 ctc_ptp_set_adjust_delay(uint32 gport, ctc_ptp_adjust_delay_type_t type, int64 value);
extern int32 ctc_ptp_set_clock_drift(uint8 ldev, ctc_ptp_time_t* p_drift);
extern int32 ctc_ptp_set_device_type(ctc_ptp_device_type_t device_type);
extern int32 ctc_ptp_set_global_property(ctc_ptp_global_prop_t property, uint32 value);
extern int32 ctc_ptp_set_sync_intf_toggle_time(uint8 ldev, ctc_ptp_time_t* p_toggle_time);
extern int32 ctc_ptp_set_sync_intf(uint8 ldev, ctc_ptp_sync_intf_cfg_t* p_sync_cfg);
extern int32 ctc_ptp_set_tod_intf_tx_code(uint8 ldev, ctc_ptp_tod_intf_code_t* p_tx_code);
extern int32 ctc_ptp_set_tod_intf(uint8 ldev, ctc_ptp_tod_intf_cfg_t* p_tod_cfg);
extern int32 ctc_qos_clear_policer_stats(ctc_qos_policer_stats_t* p_policer_stats);
extern int32 ctc_qos_clear_queue_stats(ctc_qos_queue_stats_t* p_queue_stats);
extern int32 ctc_qos_clear_stats(ctc_qos_stats_type_t type, void* p_stats);
extern int32 ctc_qos_create_sched_group(ctc_qos_sched_group_id_t* p_sched_group);
extern int32 ctc_qos_deinit(void);
extern int32 ctc_qos_destroy_sched_group(ctc_qos_sched_group_id_t* p_sched_group);
extern int32 ctc_qos_get_domain_map(ctc_qos_domain_map_t* p_domain_map);
extern int32 ctc_qos_get_drop_scheme(ctc_qos_drop_t* p_drop);
extern int32 ctc_qos_get_global_config(ctc_qos_glb_cfg_t* p_glb_cfg);
extern int32 ctc_qos_get_policer(ctc_qos_policer_t* p_policer);
extern int32 ctc_qos_get_queue(ctc_qos_queue_cfg_t* p_que_cfg);
extern int32 ctc_qos_get_resrc(ctc_qos_resrc_t* p_resrc);
extern int32 ctc_qos_get_sched(ctc_qos_sched_t* p_sched);
extern int32 ctc_qos_get_shape(ctc_qos_shape_t* p_shape);
extern int32 ctc_qos_init(void* p_glb_parm);
extern int32 ctc_qos_query_policer_stats(ctc_qos_policer_stats_t* p_policer_stats);
extern int32 ctc_qos_query_pool_stats(ctc_qos_resrc_pool_stats_t* p_stats);
extern int32 ctc_qos_query_queue_stats(ctc_qos_queue_stats_t* p_queue_stats);
extern int32 ctc_qos_query_stats(ctc_qos_stats_type_t type, void* p_stats);
extern int32 ctc_qos_set_domain_map(ctc_qos_domain_map_t* p_domain_map);
extern int32 ctc_qos_set_drop_scheme(ctc_qos_drop_t* p_drop);
extern int32 ctc_qos_set_global_config(ctc_qos_glb_cfg_t* p_glb_cfg);
extern int32 ctc_qos_set_policer(ctc_qos_policer_t* p_policer);
extern int32 ctc_qos_set_queue(ctc_qos_queue_cfg_t* p_que_cfg);
extern int32 ctc_qos_set_resrc(ctc_qos_resrc_t* p_resrc);
extern int32 ctc_qos_set_sched(ctc_qos_sched_t* p_sched);
extern int32 ctc_qos_set_shape(ctc_qos_shape_t* p_shape);
extern int32 ctc_global_ctl_get(ctc_global_control_type_t type, void* value);
extern int32 ctc_global_ctl_set(ctc_global_control_type_t type, void* value);
extern int32 ctc_register_deinit(void);
extern int32 ctc_register_init(void* p_global_cfg);
extern int32 ctc_scl_add_action_field_list(uint32 entry_id, ctc_scl_field_action_t* p_field_list, uint32* p_field_cnt);
extern int32 ctc_scl_add_action_field(uint32 entry_id, ctc_scl_field_action_t* p_field_action);
extern int32 ctc_scl_add_entry2(uint32 group_id, ctc_scl_entry2_t* scl_entry);
extern int32 ctc_scl_add_entry(uint32 group_id, ctc_scl_entry_t* scl_entry);
extern int32 ctc_scl_add_key_field_list(uint32 entry_id, ctc_field_key_t* p_field_list, uint32* p_field_cnt);
extern int32 ctc_scl_add_key_field(uint32 entry_id, ctc_field_key_t* p_field_key);
extern int32 ctc_scl_copy_entry(ctc_scl_copy_entry_t* copy_entry);
extern int32 ctc_scl_create_group(uint32 group_id, ctc_scl_group_info_t* group_info);
extern int32 ctc_scl_deinit(void);
extern int32 ctc_scl_destroy_group(uint32 group_id);
extern int32 ctc_scl_get_flex_key_fields(ctc_scl_flex_key_t* scl_flex_key);
extern int32 ctc_scl_get_flex_key_sets(ctc_scl_flex_key_t* scl_flex_key);
extern int32 ctc_scl_get_group_info(uint32 group_id, ctc_scl_group_info_t* group_info);
extern int32 ctc_scl_get_multi_entry(ctc_scl_query_t* query);
extern int32 ctc_scl_init(void* scl_global_cfg);
extern int32 ctc_scl_install_entry(uint32 entry_id);
extern int32 ctc_scl_install_group(uint32 group_id, ctc_scl_group_info_t* group_info);
extern int32 ctc_scl_remove_action_field(uint32 entry_id, ctc_scl_field_action_t* p_field_action);
extern int32 ctc_scl_remove_all_entry(uint32 group_id);
extern int32 ctc_scl_remove_entry2(uint32 entry_id);
extern int32 ctc_scl_remove_entry(uint32 entry_id);
extern int32 ctc_scl_remove_key_field(uint32 entry_id, ctc_field_key_t* p_field_key);
extern int32 ctc_scl_set_default_action(ctc_scl_default_action_t* def_action);
extern int32 ctc_scl_set_entry_priority(uint32 entry_id, uint32 priority);
extern int32 ctc_scl_set_flex_key_fields(ctc_scl_flex_key_t* scl_flex_key);
extern int32 ctc_scl_set_hash_field_sel(ctc_scl_hash_field_sel_t* field_sel);
extern int32 ctc_scl_uninstall_entry(uint32 entry_id);
extern int32 ctc_scl_uninstall_group(uint32 group_id);
extern int32 ctc_scl_update_action(uint32 entry_id, ctc_scl_action_t* action);
extern int32 ctc_sc_oam_add_mep(uint8 ldev, ctc_sc_oam_mep_t* p_mep);
extern int32 ctc_sc_oam_deinit(void);
extern int32 ctc_sc_oam_get_mep_info(uint8 ldev, ctc_sc_oam_mep_info_t* p_mep_info);
extern int32 ctc_sc_oam_get_mep_property(uint8 ldev, ctc_sc_oam_mep_prop_t* p_mep_prop);
extern int32 ctc_sc_oam_get_mep(uint8 ldev, ctc_sc_oam_mep_t* p_mep);
extern int32 ctc_sc_oam_get_property(uint8 ldev, ctc_sc_oam_prop_t* p_prop);
extern int32 ctc_sc_oam_init(void* p_cfg);
extern int32 ctc_sc_oam_remove_mep(uint8 ldev, ctc_sc_oam_mep_t* p_mep);
extern int32 ctc_sc_oam_set_mep_property(uint8 ldev, ctc_sc_oam_mep_prop_t* p_mep_prop);
extern int32 ctc_sc_oam_set_property(uint8 ldev, ctc_sc_oam_prop_t* p_prop);
extern int32 ctc_sc_oam_update_mep(uint8 ldev, ctc_sc_oam_mep_t* p_mep);
extern int32 ctc_hmac_add_sha_key(ctc_security_hmac_t* p_hmac);
extern int32 ctc_hmac_get_sha_key(ctc_security_hmac_t* p_hmac, uint32* p_key_index);
extern int32 ctc_hmac_remove_sha_key(ctc_security_hmac_t* p_hmac);
extern int32 ctc_ip_source_guard_add_entry(ctc_security_ip_source_guard_elem_t* p_elem);
extern int32 ctc_ip_source_guard_remove_entry(ctc_security_ip_source_guard_elem_t* p_elem);
extern int32 ctc_mac_security_get_learn_limit(ctc_security_learn_limit_t* p_learn_limit);
extern int32 ctc_mac_security_get_port_mac_limit(uint32 gport, ctc_maclimit_action_t* action);
extern int32 ctc_mac_security_get_port_security(uint32 gport, bool* p_enable);
extern int32 ctc_mac_security_get_system_mac_limit(ctc_maclimit_action_t* action);
extern int32 ctc_mac_security_get_vlan_mac_limit(uint16 vlan_id, ctc_maclimit_action_t* action);
extern int32 ctc_mac_security_set_learn_limit(ctc_security_learn_limit_t* p_learn_limit);
extern int32 ctc_mac_security_set_port_mac_limit(uint32 gport, ctc_maclimit_action_t action);
extern int32 ctc_mac_security_set_port_security(uint32 gport, bool enable);
extern int32 ctc_mac_security_set_system_mac_limit(ctc_maclimit_action_t action);
extern int32 ctc_mac_security_set_vlan_mac_limit(uint16 vlan_id, ctc_maclimit_action_t action);
extern int32 ctc_port_isolation_get_route_obey_isolated_en(bool* p_enable);
extern int32 ctc_port_isolation_set_route_obey_isolated_en(bool enable);
extern int32 ctc_security_deinit(void);
extern int32 ctc_security_init(void* security_global_cfg);
extern int32 ctc_storm_ctl_get_cfg(ctc_security_stmctl_cfg_t* stmctl_cfg);
extern int32 ctc_storm_ctl_get_global_cfg(ctc_security_stmctl_glb_cfg_t* p_glb_cfg);
extern int32 ctc_storm_ctl_set_cfg(ctc_security_stmctl_cfg_t* stmctl_cfg);
extern int32 ctc_storm_ctl_set_global_cfg(ctc_security_stmctl_glb_cfg_t* p_glb_cfg);
extern int32 ctc_srv6_add_my_sid(ctc_srv6_sid_t* my_sid);
extern int32 ctc_srv6_deinit(void);
extern int32 ctc_srv6_init(ctc_srv6_global_cfg_t* p_global_cfg);
extern int32 ctc_srv6_remove_my_sid(ctc_srv6_sid_t* my_sid);
extern int32 ctc_srv6_update_my_sid(ctc_srv6_sid_t* my_sid);
extern int32 ctc_stacking_add_trunk_port(ctc_stacking_trunk_t* p_trunk);
extern int32 ctc_stacking_add_trunk_rchip(ctc_stacking_trunk_t* p_trunk);
extern int32 ctc_stacking_create_keeplive_group(uint16 group_id);
extern int32 ctc_stacking_create_trunk(ctc_stacking_trunk_t* p_trunk);
extern int32 ctc_stacking_deinit(void);
extern int32 ctc_stacking_destroy_keeplive_group(uint16 group_id);
extern int32 ctc_stacking_destroy_trunk(ctc_stacking_trunk_t* p_trunk);
extern int32 ctc_stacking_get_member_ports(uint8 ldev, uint8 trunk_id, uint32* p_gports, uint8* cnt);
extern int32 ctc_stacking_get_property(ctc_stacking_property_t* p_prop);
extern int32 ctc_stacking_get_trunk_mcast_profile(ctc_stacking_trunk_mcast_profile_t* p_mcast_profile);
extern int32 ctc_stacking_get_trunk_rchip(ctc_stacking_trunk_t* p_trunk);
extern int32 ctc_stacking_init(void* p_cfg);
extern int32 ctc_stacking_keeplive_add_member(ctc_stacking_keeplive_t* p_keeplive);
extern int32 ctc_stacking_keeplive_get_members(ctc_stacking_keeplive_t* p_keeplive);
extern int32 ctc_stacking_keeplive_remove_member(ctc_stacking_keeplive_t* p_keeplive);
extern int32 ctc_stacking_remove_trunk_port(ctc_stacking_trunk_t* p_trunk);
extern int32 ctc_stacking_remove_trunk_rchip(ctc_stacking_trunk_t* p_trunk);
extern int32 ctc_stacking_replace_trunk_ports(ctc_stacking_trunk_t* p_trunk, uint32* gports, uint16 mem_ports);
extern int32 ctc_stacking_set_property(ctc_stacking_property_t* p_prop);
extern int32 ctc_stacking_set_trunk_mcast_profile(ctc_stacking_trunk_mcast_profile_t* p_mcast_profile);
extern int32 ctc_stats_clear_cpu_mac_stats(uint32 gport);
extern int32 ctc_stats_clear_mac_stats(uint32 gport, ctc_mac_stats_dir_t dir);
extern int32 ctc_stats_clear_port_log_stats(uint32 gport, ctc_direction_t dir);
extern int32 ctc_stats_clear_stats(uint32 stats_id);
extern int32 ctc_stats_create_statsid(ctc_stats_statsid_t* statsid);
extern int32 ctc_stats_deinit(void);
extern int32 ctc_stats_destroy_statsid(uint32 stats_id);
extern int32 ctc_stats_get_cpu_mac_stats(uint32 gport, ctc_cpu_mac_stats_t* p_stats);
extern int32 ctc_stats_get_drop_packet_stats_en(ctc_stats_discard_t bitmap, bool* enable);
extern int32 ctc_stats_get_global_cfg(ctc_stats_property_param_t stats_param, ctc_stats_property_t* p_stats_prop);
extern int32 ctc_stats_get_mac_stats_cfg(uint32 gport, ctc_mac_stats_prop_type_t mac_stats_prop_type, ctc_mac_stats_property_t* p_prop_data);
extern int32 ctc_stats_get_mac_stats(uint32 gport, ctc_mac_stats_dir_t dir, ctc_mac_stats_t* p_stats);
extern int32 ctc_stats_get_mem_usage(ctc_stats_mem_usage_t* p_usage);
extern int32 ctc_stats_get_port_log_stats(uint32 gport, ctc_direction_t dir, ctc_stats_basic_t* p_stats);
extern int32 ctc_stats_get_stats(uint32 stats_id, ctc_stats_basic_t* p_stats);
extern int32 ctc_stats_init(void* stats_global_cfg);
extern int32 ctc_stats_intr_callback_func(uint8* gchip);
extern int32 ctc_stats_register_cb(ctc_stats_sync_fn_t cb, void* userdata);
extern int32 ctc_stats_set_drop_packet_stats_en(ctc_stats_discard_t bitmap, bool enable);
extern int32 ctc_stats_set_global_cfg(ctc_stats_property_param_t stats_param, ctc_stats_property_t stats_prop);
extern int32 ctc_stats_set_mac_stats_cfg(uint32 gport, ctc_mac_stats_prop_type_t mac_stats_prop_type, ctc_mac_stats_property_t prop_data);
extern int32 ctc_stats_set_syncup_cb_internal(uint32 stats_interval);
extern int32 ctc_stp_clear_all_inst_state(uint32 gport);
extern int32 ctc_stp_deinit(void);
extern int32 ctc_stp_get_state(uint32 gport, uint8 stpid, uint8* state);
extern int32 ctc_stp_get_vlan_stpid(uint16 vlan_id, uint8* stpid);
extern int32 ctc_stp_init(void* stp_global_cfg);
extern int32 ctc_stp_set_state(uint32 gport, uint8 stpid, uint8 state);
extern int32 ctc_stp_set_vlan_stpid(uint16 vlan_id, uint8 stpid);
extern int32 ctc_sync_ether_deinit(void);
extern int32 ctc_sync_ether_get_cfg(uint8 ldev, uint8 sync_ether_clock_id, ctc_sync_ether_cfg_t* p_sync_ether_cfg);
extern int32 ctc_sync_ether_init(void* sync_ether_global_cfg);
extern int32 ctc_sync_ether_set_cfg(uint8 ldev, uint8 sync_ether_clock_id, ctc_sync_ether_cfg_t* p_sync_ether_cfg);
extern int32 ctc_trill_add_route(ctc_trill_route_t* p_trill_route);
extern int32 ctc_trill_add_tunnel(ctc_trill_tunnel_t* p_trill_tunnel);
extern int32 ctc_trill_deinit(void);
extern int32 ctc_trill_init(void* trill_global_cfg);
extern int32 ctc_trill_remove_route(ctc_trill_route_t* p_trill_route);
extern int32 ctc_trill_remove_tunnel(ctc_trill_tunnel_t* p_trill_tunnel);
extern int32 ctc_trill_update_tunnel(ctc_trill_tunnel_t* p_trill_tunnel);
extern int32 ctc_vlan_add_default_egress_vlan_mapping(uint32 gport, ctc_vlan_miss_t* p_action);
extern int32 ctc_vlan_add_default_vlan_class(ctc_vlan_class_type_t type, ctc_vlan_miss_t* p_action);
extern int32 ctc_vlan_add_default_vlan_mapping(uint32 gport, ctc_vlan_miss_t* p_action);
extern int32 ctc_vlan_add_egress_vlan_mapping(uint32 gport, ctc_egress_vlan_mapping_t* p_vlan_mapping);
extern int32 ctc_vlan_add_ports(uint8 ldev, uint16 vlan_id, ctc_port_bitmap_t port_bitmap);
extern int32 ctc_vlan_add_port(uint16 vlan_id, uint32 gport);
extern int32 ctc_vlan_add_vlan_class(ctc_vlan_class_t* p_vlan_class);
extern int32 ctc_vlan_add_vlan_mapping(uint32 gport, ctc_vlan_mapping_t* p_vlan_mapping);
extern int32 ctc_vlan_add_vlan_range(ctc_vlan_range_info_t* vrange_info, ctc_vlan_range_t* vlan_range);
extern int32 ctc_vlan_create_uservlan(ctc_vlan_uservlan_t* user_vlan);
extern int32 ctc_vlan_create_vlan_range_group(ctc_vlan_range_info_t* vrange_info, bool is_svlan);
extern int32 ctc_vlan_create_vlan(uint16 vlan_id);
extern int32 ctc_vlan_deinit(void);
extern int32 ctc_vlan_destroy_vlan_range_group(ctc_vlan_range_info_t* vrange_info);
extern int32 ctc_vlan_destroy_vlan(uint16 vlan_id);
extern int32 ctc_vlan_get_acl_property(uint16 vlan_id, ctc_acl_property_t* p_prop);
extern int32 ctc_vlan_get_arp_excp_type(uint16 vlan_id, ctc_exception_type_t* type);
extern int32 ctc_vlan_get_bridge_en(uint16 vlan_id, bool* enable);
extern int32 ctc_vlan_get_dhcp_excp_type(uint16 vlan_id, ctc_exception_type_t* type);
extern int32 ctc_vlan_get_direction_property(uint16 vlan_id, ctc_vlan_direction_property_t vlan_prop, ctc_direction_t dir, uint32* value);
extern int32 ctc_vlan_get_egress_vlan_mapping(uint32 gport, ctc_egress_vlan_mapping_t* p_vlan_mapping);
extern int32 ctc_vlan_get_fid(uint16 vlan_id, uint16* fid);
extern int32 ctc_vlan_get_igmp_snoop_en(uint16 vlan_id, bool* enable);
extern int32 ctc_vlan_get_learning_en(uint16 vlan_id, bool* enable);
extern int32 ctc_vlan_get_mac_auth(uint16 vlan_id, bool* enable);
extern int32 ctc_vlan_get_ports(uint16 vlan_id, uint8 gchip, ctc_port_bitmap_t port_bitmap);
extern int32 ctc_vlan_get_property(uint16 vlan_id, ctc_vlan_property_t vlan_prop, uint32* value);
extern int32 ctc_vlan_get_receive_en(uint16 vlan_id, bool* enable);
extern int32 ctc_vlan_get_tagged_ports(uint16 vlan_id, uint8 gchip, ctc_port_bitmap_t port_bitmap);
extern int32 ctc_vlan_get_transmit_en(uint16 vlan_id, bool* enable);
extern int32 ctc_vlan_get_vlan_mapping(uint32 gport, ctc_vlan_mapping_t* p_vlan_mapping);
extern int32 ctc_vlan_get_vlan_range_type(ctc_vlan_range_info_t* vrange_info, bool* is_svlan);
extern int32 ctc_vlan_get_vlan_range(ctc_vlan_range_info_t* vrange_info, ctc_vlan_range_group_t* vrange_group, uint8* count);
extern int32 ctc_vlan_init(ctc_vlan_global_cfg_t* vlan_global_cfg);
extern int32 ctc_vlan_remove_all_egress_vlan_mapping_by_port(uint32 gport);
extern int32 ctc_vlan_remove_all_vlan_class(ctc_vlan_class_type_t type);
extern int32 ctc_vlan_remove_all_vlan_mapping_by_port(uint32 gport);
extern int32 ctc_vlan_remove_default_egress_vlan_mapping(uint32 gport);
extern int32 ctc_vlan_remove_default_vlan_class(ctc_vlan_class_type_t type);
extern int32 ctc_vlan_remove_default_vlan_mapping(uint32 gport);
extern int32 ctc_vlan_remove_egress_vlan_mapping(uint32 gport, ctc_egress_vlan_mapping_t* p_vlan_mapping);
extern int32 ctc_vlan_remove_ports(uint8 ldev, uint16 vlan_id, ctc_port_bitmap_t port_bitmap);
extern int32 ctc_vlan_remove_port(uint16 vlan_id, uint32 gport);
extern int32 ctc_vlan_remove_vlan_class(ctc_vlan_class_t* p_vlan_class);
extern int32 ctc_vlan_remove_vlan_mapping(uint32 gport, ctc_vlan_mapping_t* p_vlan_mapping);
extern int32 ctc_vlan_remove_vlan_range(ctc_vlan_range_info_t* vrange_info, ctc_vlan_range_t* vlan_range);
extern int32 ctc_vlan_set_acl_property(uint16 vlan_id, ctc_acl_property_t* p_prop);
extern int32 ctc_vlan_set_arp_excp_type(uint16 vlan_id, ctc_exception_type_t type);
extern int32 ctc_vlan_set_bridge_en(uint16 vlan_id, bool enable);
extern int32 ctc_vlan_set_dhcp_excp_type(uint16 vlan_id, ctc_exception_type_t type);
extern int32 ctc_vlan_set_direction_property(uint16 vlan_id, ctc_vlan_direction_property_t vlan_prop, ctc_direction_t dir, uint32 value);
extern int32 ctc_vlan_set_fid(uint16 vlan_id, uint16 fid);
extern int32 ctc_vlan_set_igmp_snoop_en(uint16 vlan_id, bool enable);
extern int32 ctc_vlan_set_learning_en(uint16 vlan_id, bool enable);
extern int32 ctc_vlan_set_mac_auth(uint16 vlan_id, bool enable);
extern int32 ctc_vlan_set_property_array(uint16 vlan_id, ctc_property_array_t* vlan_prop, uint16* array_num);
extern int32 ctc_vlan_set_property(uint16 vlan_id, ctc_vlan_property_t vlan_prop, uint32 value);
extern int32 ctc_vlan_set_receive_en(uint16 vlan_id, bool enable);
extern int32 ctc_vlan_set_tagged_ports(uint8 ldev, uint16 vlan_id, ctc_port_bitmap_t port_bitmap);
extern int32 ctc_vlan_set_tagged_port(uint16 vlan_id, uint32 gport, bool tagged);
extern int32 ctc_vlan_set_transmit_en(uint16 vlan_id, bool enable);
extern int32 ctc_vlan_update_vlan_mapping(uint32 gport, ctc_vlan_mapping_t* p_vlan_mapping);
extern int32 ctc_wlan_add_client(ctc_wlan_client_t* p_client_param);
extern int32 ctc_wlan_add_tunnel(ctc_wlan_tunnel_t* p_tunnel_param);
extern int32 ctc_wlan_deinit(void);
extern int32 ctc_wlan_get_crypt(ctc_wlan_crypt_t* p_crypt_param);
extern int32 ctc_wlan_get_global_cfg(ctc_wlan_global_cfg_t* p_glb_param);
extern int32 ctc_wlan_init(ctc_wlan_global_cfg_t* p_glb_param);
extern int32 ctc_wlan_remove_client(ctc_wlan_client_t* p_client_param);
extern int32 ctc_wlan_remove_tunnel(ctc_wlan_tunnel_t* p_tunnel_param);
extern int32 ctc_wlan_set_crypt(ctc_wlan_crypt_t* p_crypt_param);
extern int32 ctc_wlan_set_global_cfg(ctc_wlan_global_cfg_t* p_glb_param);
extern int32 ctc_wlan_update_client(ctc_wlan_client_t* p_client_param);
extern int32 ctc_wlan_update_tunnel(ctc_wlan_tunnel_t* p_tunnel_param);
extern int32 ctc_xdata_deinit(void);
extern int32 ctc_xdata_get_local(ctc_xdata_local_t* p_local);
extern int32 ctc_xdata_get_path(ctc_xdata_path_t* p_path);
extern int32 ctc_xdata_get_profile(ctc_xdata_prof_t* p_prof);
extern int32 ctc_xdata_init(void* xdata_global_cfg);
extern int32 ctc_xdata_set_local(ctc_xdata_local_t* p_local);
extern int32 ctc_xdata_set_path(ctc_xdata_path_t* p_path);
extern int32 ctc_xdata_set_profile(ctc_xdata_prof_t* p_prof);
 
#ifdef __cplusplus
}
#endif
#endif
